- Pi est un agent de codage minimaliste basé sur le terminal, qui offre une architecture extensible adaptée au workflow de l’utilisateur
- Il est possible de composer son propre environnement de développement en combinant des extensions TypeScript, skills, modèles de prompt et thèmes, puis de le partager sous forme de package npm ou git
- Prend en charge plus de 15 fournisseurs d’IA et des centaines de modèles, avec la possibilité de changer de modèle en cours de session ou d’ajouter des modèles personnalisés
- Les sessions sont enregistrées sous forme d’historique en arborescence, permettant de revenir à un point précédent ou d’exporter en HTML ou vers un GitHub gist
- En réduisant au minimum les fonctionnalités du noyau et en conservant une philosophie de conception centrée sur l’extensibilité, Pi permet aux développeurs d’implémenter eux-mêmes uniquement les fonctions nécessaires ou de les ajouter sous forme de packages
Présentation de Pi
- Pi est un harnais de codage terminal conçu pour permettre aux utilisateurs de personnaliser leurs outils sans changer leur workflow
- Il prend en charge des composants extensibles tels que les extensions TypeScript, skills, modèles de prompt et thèmes
- Des packages pi regroupant ces éléments peuvent être installés et partagés via npm ou git
- La configuration par défaut est puissante, mais n’inclut pas de fonctions comme les sous-agents ou le mode plan
- Quatre modes sont proposés (interactif, print/JSON, RPC, SDK), avec un exemple d’intégration réel disponible dans clawdbot
Modèles et fournisseurs
- Prend en charge plus de 15 fournisseurs et des centaines de modèles, dont Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, Cerebras, xAI, Hugging Face, Kimi, MiniMax, OpenRouter, Ollama
- Authentification possible via clé API ou OAuth
- Changement de modèle en cours de session avec la commande
/model ou Ctrl+L, rotation entre les modèles favoris avec Ctrl+P
- Il est possible d’ajouter des modèles personnalisés via models.json ou des extensions
Gestion des sessions
- Les sessions sont enregistrées sous forme d’arborescence, et la commande
/tree permet de revenir à un point antérieur
- Toutes les branches sont stockées dans un seul fichier, avec prise en charge du filtrage par type de message et de l’étiquetage par signets
/export permet l’export HTML, et /share l’envoi vers un GitHub gist avec génération d’une URL de partage
Ingénierie du contexte
- Grâce à un prompt système minimal et à son extensibilité, Pi permet un contrôle fin de la fenêtre de contexte
- AGENTS.md : charge automatiquement les consignes du projet au démarrage
- SYSTEM.md : remplace ou ajoute le prompt système par défaut pour un projet donné
- Compaction : résume automatiquement les messages précédents lorsque la limite de contexte est atteinte ; des extensions peuvent implémenter des résumés par sujet ou conscients du code
- Skills : packages de fonctionnalités chargés à la demande, qui conservent le cache de prompt tout en apportant des capacités de façon progressive
- Prompt templates : prompts réutilisables et extensibles via la commande
/name
- Dynamic context : les extensions peuvent injecter des messages, filtrer l’historique, implémenter du RAG ou construire une mémoire long terme
Mise en file des messages
- Il est possible d’envoyer des messages même lorsque l’agent est occupé
Enter : message de pilotage transmis après l’exécution de l’outil en cours
Alt+Enter : message de suivi transmis une fois la tâche terminée
Architecture des extensions
- Pi est conçu autour de primitives plutôt que de fonctionnalités toutes faites, afin que l’utilisateur puisse implémenter lui-même ses besoins
- Les extensions prennent la forme de modules TypeScript et peuvent accéder aux outils, commandes, raccourcis, événements et à l’ensemble du TUI
- Exemples d’extensions : sous-agents, mode plan, contrôle des autorisations, protection des chemins, exécution SSH, sandboxing, intégration MCP, éditeur personnalisé, overlays
- Il existe même une extension d’overlay de jeu, comme l’illustre l’exemple « Yes, Doom runs. »
- Si l’on ne souhaite pas tout implémenter soi-même, il suffit d’installer des packages pi pour ajouter des fonctions
- Plus de 50 exemples d’extensions sont publiés sur GitHub
Gestion des packages
- Les extensions, skills, prompts et thèmes peuvent être regroupés en packages puis installés depuis npm ou git
- Les packages peuvent être découverts et partagés via le mot-clé npm
pi-package ou le canal Discord
Modes d’intégration
- Interactive : environnement TUI complet
- Print/JSON :
pi -p "query" pour les scripts, --mode json pour les flux d’événements
- RPC : prise en charge de l’intégration dans des environnements non Node via un protocole JSON basé sur stdin/stdout
- SDK : intégration embarquée dans une application, avec un exemple réel d’usage dans clawdbot
Philosophie de conception
- Pi est conçu pour maximiser l’extensibilité, en gardant un noyau minimal et en laissant l’utilisateur définir lui-même son workflow
- Les fonctions MCP, sous-agents, pop-up d’autorisations, mode plan, TODO intégré, bash en arrière-plan ne sont pas incluses
- En revanche, ces fonctions peuvent être reproduites via des extensions, skills et packages, ou reliées à des outils externes
- L’exécution et l’observation en parallèle via tmux sont prises en charge
- Cette approche permet une construction pilotée par l’utilisateur de son environnement de développement
- La philosophie complète est détaillée plus en profondeur dans le billet de blog associé
2 commentaires
J’aime vraiment beaucoup pi
Commentaires sur Hacker News
Ce qui me fascine avec Pi et le phénomène « claw », c’est que cela montre l’avenir de l’open source
Au lieu d’envoyer des demandes de fonctionnalités ou des PR, on entre désormais dans une époque où l’on télécharge des fichiers de compétences qui expliquent à l’agent de code comment ajouter une fonctionnalité
Le logiciel n’est plus un produit figé, mais un outil vivant différent pour chaque utilisateur
Je me demande quels outils vont émerger de ce nouveau paradigme de collaboration
Les logiciels actuels donnent un sentiment d’aliénation parce qu’ils empêchent les utilisateurs de contrôler leur environnement
Mais des logiciels personnalisés, bon marché et flexibles peuvent offrir un vrai sentiment d’appropriation
Autrefois, les desktops Linux donnaient ce genre de liberté, et j’ai l’impression que tout le monde pourra bientôt en profiter
Je suis optimiste sur cet avenir
Je pense qu’on verra de plus en plus de logiciels extrêmement personnalisés — au point de n’être compréhensibles que par une personne précise ou un petit groupe
J’ai moi-même récemment utilisé Claude pour créer beaucoup d’outils que seuls moi et quelques personnes utilisons
Par exemple, une appli de planification pour DnD, un lecteur d’actualités Formula E sans spoilers, ou encore un site de vote pour une coopérative d’escalade
Avant, il n’y avait aucune raison de construire ce genre de choses, mais maintenant c’est devenu possible
J’ai résumé ça dans Releasing Software Now
Il est peu probable que de grandes entreprises ou des gouvernements acceptent des systèmes aussi peu cohérents
J’ai plutôt l’impression qu’il donnera naissance à des outils pires
J’ai l’habitude d’OpenCode, donc je me demande si je devrais essayer Pi comme espace de travail IA personnel
L’écosystème de Pi est plus petit, mais il semble offrir davantage de souplesse et d’extensibilité, et on sent aussi l’enthousiasme de la communauté
Je me demande s’il vaut mieux utiliser Pi à la place d’OpenCode, et quelles sont les options d’interface disponibles
J’ai utilisé OpenCode avec des fichiers .md pour écrire et organiser mes idées, et ça marchait plutôt bien
Maintenant, je cherche un nouveau harnais plus adapté à ce type de travail
C’est actuellement mon harnais préféré
Le fait de pouvoir l’étendre directement le rend très efficace, et je l’ai intégré à mon projet vibes
C’est bien plus rapide qu’ACP
Je cherchais un protocole général d’interaction entre agents, et ACP semblait être un bon candidat
Mais quand on voit que même OpenCode n’utilise pas ACP dans son interface, on se dit qu’il y a sans doute un problème
J’aimerais aussi savoir s’il existe de meilleures alternatives
Je n’ai encore jamais vu quelqu’un utiliser Pi quelques jours sans finir par l’adopter au quotidien
Une fois qu’on a goûté à la liberté de configurer l’outil exactement à son goût, il devient difficile de revenir en arrière
Et en plus, on peut construire dessus de superbes extensions
L’extensibilité de Pi est intéressante, mais la qualité réelle du travail produit m’a semblé insuffisante
Je ne comprends pas pourquoi il faudrait absolument coder dans une application terminal
On peut faire exactement la même chose, et mieux, avec une extension d’IDE, et VSCode peut aussi restaurer la disposition des fenêtres telle quelle
C’est comme donner des instructions à un collègue développeur par chat texte
Par exemple, je peux confier à Claude un programme de maintenance serveur, faire autre chose pendant ce temps, puis simplement vérifier le résultat
Si les tests passent, peu importe à quoi ressemble le code
En pratique, cela m’a permis de mener plusieurs tâches de front avec seulement une quinzaine de minutes de travail actif
J’utilise Pi dans Emacs avec le paquet pi-coding-agent
En mode RPC, il crée un buffer Markdown pour l’entrée et la sortie, ce qui est bien plus confortable que les autres TUI
J’ai aussi facilement intégré un suivi d’issues, et j’ai redéfini les commandes
readetwritepour qu’elles s’appuient sur les buffers EmacsJ’aimerais aussi améliorer la commande
editen utilisant les requêtes tree-sitter d’EmacsEt avec la commande
emacs_eval, j’ai même pu permettre la navigation dans la documentation via EWWreadetwritesur les buffers EmacsAu passage, le mode Pi pour Emacs peut être installé ici
J’ajoute aussi une fonctionnalité pour ouvrir directement le fichier concerné depuis le résultat des appels
read,writeeteditBientôt, il y aura aussi la navigation dans les sessions et l’arborescence de Pi, ainsi que l’intégration avec Magit
J’ai commencé avec Pi, et depuis deux semaines j’utilise surtout oh-my-pi
Le dépôt oh-my-pi est une version batteries incluses de Pi
Je me dis que je pourrais aussi cloner un projet existant et le republier sous un autre nom
Par exemple : « Waterfox — consommateur web minimal »
Version préconfigurée de Pi : oh-my-pi
Il faudrait un environnement isolé permettant de les installer et de les tester en toute sécurité, comme avec des applications
Je suis passé de codex/claude code à opencode, puis à pi, puis à oh-my-pi
J’aimerais essayer de le faire moi-même un jour
Ce qui fait le charme de Pi, c’est sa légèreté et son autonomie, alors qu’oh-my-pi ajoute tellement de fonctions qu’il finit par donner une lourdeur comparable à OpenCode
Pi a vraiment fait des choix de conception remarquables
Bravo à Mario et Armin — le bon goût finit toujours par se voir