12 points par GN⁺ 2026-02-25 | Aucun commentaire pour le moment. | 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é

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.