12 points par GN⁺ 2026-02-25 | 2 commentaires | Partager sur WhatsApp
  • 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
    • Exemples :
      $ pi install npm:@foo/pi-tools  
      $ pi install git:github.com/badlogic/pi-doom  
      
    • Verrouillage de version (@1.2.3 ou @tag), mise à jour globale avec pi update, consultation de la liste avec pi list, configuration avec pi config
    • La commande pi -e permet de tester sans installation
  • 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

 
qodot 2026-02-26

J’aime vraiment beaucoup pi

 
GN⁺ 2026-02-25
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

    • Je vois la même tendance
      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
    • J’y pense beaucoup moi aussi ces derniers temps
      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
    • Je suis d’accord avec l’idée d’un outil vivant différent des copies des autres, mais je pense que ce modèle sera difficile à faire adopter par les institutions
      Il est peu probable que de grandes entreprises ou des gouvernements acceptent des systèmes aussi peu cohérents
    • Je ne vois pas pourquoi ce paradigme produirait des outils intéressants
      J’ai plutôt l’impression qu’il donnera naissance à des outils pires
    • Si chacun finit par utiliser une version différente du logiciel, rien qu’imaginer la complexité du dépannage donne le vertige
  • 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

    • Je me pose la même question
      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
    • Tu as bien compris la direction
  • 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 me demande d’où vient la différence de vitesse entre une intégration directe et 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 serais curieux de savoir avec quels autres harnais tu l’as comparé
    • J’adore vraiment ça ! On dirait que quelqu’un a déjà implémenté exactement ce que je voulais construire moi-même
    • Que veut dire « harnais » ici ? Ce n’est pas simplement un agent de code ?
  • 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

    • D’après ce que j’entends, Pi serait un peu le Neovim ou Emacs des agents de code
    • Ravi pour vous, mais moi j’ai été bien plus productif avec Claude CLI et OpenCode qu’avec Pi
      L’extensibilité de Pi est intéressante, mais la qualité réelle du travail produit m’a semblé insuffisante
    • Je suis curieux de savoir quelles fonctionnalités maison tu préfères, celles qu’on ne trouve pas dans Claude Code
  • 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

    • Quand j’utilise un agent CLI, je n’ai plus du tout besoin d’IDE
      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 read et write pour qu’elles s’appuient sur les buffers Emacs
    J’aimerais aussi améliorer la commande edit en utilisant les requêtes tree-sitter d’Emacs
    Et avec la commande emacs_eval, j’ai même pu permettre la navigation dans la documentation via EWW

    • Excellent ! Je suis curieux de savoir comment tu as mappé read et write sur les buffers Emacs
      Au 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, write et edit
      Bientô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 serais curieux d’avoir un retour d’expérience sur oh-my-pi
    • J’aimerais aussi savoir si tu le fais tourner dans un environnement sandboxé, ou s’il dispose d’une fonction d’isolation
  • 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

    • Ce fork a l’air cool, mais ajouter à la volée des outils issus de n’importe quel dépôt me semble risqué sur le plan de la sécurité
      Il faudrait un environnement isolé permettant de les installer et de les tester en toute sécurité, comme avec des applications
    • Je suis un fan absolu de ce fork
      Je suis passé de codex/claude code à opencode, puis à pi, puis à oh-my-pi
    • Excellent fork ! J’ai voulu y contribuer moi aussi, mais la communauté m’a semblé un peu fermée
    • Ce serait bien de séparer les outils web d’oh-my-pi pour les utiliser comme plugins Pi classiques
      J’aimerais essayer de le faire moi-même un jour
    • Mais j’ai l’impression que cela passe à côté de l’essence même de Pi
      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

    • Mais je ne comprends pas pourquoi avoir implémenté ça en JavaScript