Pi vs OpenCode : Quel agent de codage IA devriez-vous utiliser ?
KKTG Analysis
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00Il y a désormais deux agents de codage IA open source sérieux qui se battent pour le terminal
00:00:04et choisir le mauvais pourrait signifier reconstruire tout votre flux de travail plus tard.
00:00:10L'un d'eux est livré avec tout ce que vous pourriez souhaiter dès le départ, l'autre
00:00:14n'offre presque rien et soutient que c'est précisément le but. Aujourd'hui, nous
00:00:19opposons Open Code et Pi.
00:00:21À la fin de cette vidéo, vous saurez exactement lequel a sa place dans votre terminal.
00:00:27Commençons par ce que sont réellement ces outils.
00:00:30Car ils résolvent le même problème de manières fondamentalement différentes. À la fois
00:00:34Open Code et Pi sont des agents de codage IA basés sur le terminal. Vous les lancez
00:00:40dans votre terminal, ils se connectent à des modèles de langage comme Claude ou GPT, et
00:00:45ils peuvent lire votre code, modifier des fichiers, exécuter des commandes shell et discuter
00:00:50longuement de votre base de code. Voyez-les comme des alternatives open source à Claude Code.
00:00:55Les deux sont écrits en TypeScript, sous licence MIT et supportent plus de 20
00:01:01fournisseurs de LLM, mais c'est à peu près là que s'arrêtent les similitudes. Open Code a été
00:01:06conçu par les créateurs de terminal.shop et une communauté de passionnés de NeoVim.
00:01:11Il adopte ce que j'appellerais une approche “tout inclus” par défaut.
00:01:15Vous obtenez un système multi-agents avec des agents spécialisés pour différentes tâches, un
00:01:20système de permissions intégré avec dialogues d'approbation, une intégration
00:01:24LSP pour l'intelligence du code, le support complet du Model Context Protocol pour
00:01:29se connecter à des outils externes, une base SQLite pour la persistance des sessions et
00:01:34même une application de bureau basée sur Tauri en plus de l'interface du terminal.
00:01:40La philosophie d'Open Code est qu'un agent de codage doit fonctionner immédiatement
00:01:45avec des réglages par défaut sensés et des intégrations profondes. Pi, créé par Mario Zechner,
00:01:51adopte l'approche inverse. Sa philosophie est clairement énoncée dans le README :
00:01:56Pi est agressivement extensible, afin de ne pas avoir à dicter votre flux de travail.
00:02:00Pi est délibérément livré sans sous-agents, sans support MCP, sans système de
00:02:05permissions, sans mode planification et sans suivi de tâches intégré. Au lieu de cela,
00:02:11il fournit une API d'extension puissante et dit : construisez exactement ce dont vous avez besoin
00:02:17ou installez un package communautaire qui le fait à votre façon. Le cœur reste minimal.
00:02:22Tout le reste est optionnel. Ces deux projets représentent une véritable fracture philosophique
00:02:27dans la conception des outils de développement. Plongeons dans les détails
00:02:32techniques de chacun, puis nous les comparerons directement. Commençons par
00:02:36l'architecture d'Open Code. Open Code est un monorepo d'environ 21 packages.
00:02:42Le moteur principal réside dans un seul package, mais il existe des packages séparés pour la
00:02:46console web, l'application bureau, le SDK TypeScript, le système de plugins, les composants
00:02:52UI partagés et la documentation. Sous le capot, il tourne sur Bun, qui est
00:02:57bien plus rapide que Node pour le démarrage et l'exécution. Pour sa couche
00:03:02d'abstraction LLM, Open Code utilise le polyvalent Vercel AI SDK version 5.
00:03:08C'est une bibliothèque bien maintenue et largement adoptée qui offre une interface unifiée
00:03:13pour des dizaines de fournisseurs. L'avantage pratique est qu'Open Code bénéficie
00:03:18du support des fournisseurs presque gratuitement au fur et à mesure que le SDK Vercel en ajoute.
00:03:24L'une des fonctionnalités phares d'Open Code est son système multi-agents.
00:03:30Il est livré avec plusieurs agents spécialisés. L'agent “Build” est celui par défaut,
00:03:35un agent de développement à accès complet qui peut lire, écrire et tout exécuter.
00:03:40L'agent “Plan” est en lecture seule, conçu pour explorer et analyser le code
00:03:45sans faire de changements. Il ne peut écrire que dans un répertoire spécifique de plans.
00:03:50L'agent “Explorer” est un spécialiste rapide et léger pour la navigation,
00:03:55limité aux opérations de recherche et de lecture. Et il y a un agent général pour les
00:04:00tâches complexes en plusieurs étapes. Les utilisateurs basculent entre eux avec la touche
00:04:05Tab, et chaque agent a son propre jeu de règles de permissions. Vous pouvez aussi
00:04:09définir des agents personnalisés dans votre configuration, en spécifiant leur modèle,
00:04:14leurs permissions et leur prompt système. Pour la persistance des données, Open Code
00:04:19utilise SQLite avec l'ORM Drizzle. Les sessions, messages, permissions et
00:04:25identifiants MCP vivent tous dans un seul fichier de base de données. C'est un choix
00:04:30architectural important. SQLite offre une intégrité transactionnelle, des requêtes
00:04:35efficaces entre les sessions et un fichier unique facile à sauvegarder. Open Code
00:04:41l'utilise en mode WAL pour de meilleures performances de lecture concurrente.
00:04:46Le système de permissions est stratifié et granulaire. Chaque appel d'outil passe par
00:04:52des vérifications. Vous pouvez définir des règles par outil et par motif de fichier.
00:04:57Par exemple, autoriser toutes les lectures mais exiger une approbation pour éditer les .env
00:05:03et refuser les commandes shell sur les dossiers de production. Les permissions se
00:05:08propagent de la config globale de l'utilisateur jusqu'aux réglages spécifiques du projet.
00:05:13Quand l'agent a besoin d'approbation, il affiche un dialogue interactif dans le terminal,
00:05:18et vous pouvez choisir d'autoriser une fois ou toujours. L'intégration MCP
00:05:24est complète. Open Code peut se connecter à des serveurs MCP locaux et distants.
00:05:30Il supporte les transports stdio et HTTP, gère l'authentification OAuth pour
00:05:37les serveurs distants et enregistre automatiquement les outils des serveurs
00:05:42connectés. Si vous utilisez déjà MCP avec d'autres outils, Open Code fonctionnera
00:05:47immédiatement avec eux. Autre point notable : le support LSP intégré.
00:05:53Open Code peut lancer des serveurs LSP pour TypeScript, Python, Go, Rust
00:05:58et d'autres. Cela donne au modèle accès à une intelligence réelle du code comme
00:06:04les infos au survol, la définition et les références de symboles, plutôt que de
00:06:10se fier uniquement à la reconnaissance de texte. C'est un avantage subtil mais
00:06:15réel pour la précision. Open Code a aussi un système de compétences compatible avec
00:06:20le format de Claude Code. Ce sont des fichiers Markdown définissant des comportements,
00:06:25et il y a un système de plugins via NPM qui peut s'interfacer avec presque toutes
00:06:30les étapes, du chargement de la config à l'exécution des outils. Passons
00:06:35maintenant à l'architecture de Pi. Pi est aussi un monorepo, mais avec une
00:06:40structure différente. Les packages clés sont l'agent lui-même, Pi-AI pour la couche
00:06:45d'abstraction LLM, Pi-Agent-Core pour le runtime et Pi-2e pour le rendu
00:06:51dans le terminal. Il y a aussi Pi-Mom, un bot Slack, et Pi-Pods pour le
00:06:57déploiement sur GPU. La décision technique majeure de Pi est d'avoir construit
00:07:02sa propre couche d'abstraction LLM au lieu d'utiliser le SDK Vercel.
00:07:08Pi-AI est une API LLM unifiée supportant plus de 30 fournisseurs, y compris
00:07:12certains non couverts par Vercel, comme Minimax et Kimi. Construire sa propre
00:07:20couche donne un contrôle total sur le streaming, l'analyse des appels d'outils
00:07:24et les optimisations spécifiques. Le revers est la charge de maintenance, mais
00:07:30cela permet à Pi d'implémenter des fonctions comme l'analyse JSON partielle pendant
00:07:35le streaming exactement comme ils le souhaitent. La gestion de session de Pi
00:07:40utilise un format JSONL, un fichier plat où chaque ligne est un objet JSON.
00:07:44Chaque entrée a un ID parent, ce qui permet une structure en arbre dans un
00:07:50seul fichier. C'est ingénieux. Vous pouvez créer des branches dans vos discussions,
00:07:56naviguer dans l'historique et sauter d'une branche à l'autre dans un fichier
00:08:00facile à inspecter avec les outils Unix. La commande “tree” permet de
00:08:06visualiser tout l'historique et d'aller n'importe où. La commande “fork” crée
00:08:12une nouvelle branche à partir de n'importe quel message. C'est vraiment l'une des
00:08:17meilleures interfaces de gestion que j'ai vues. Le système d'extensions de Pi
00:08:23est là où sa philosophie prend tout son sens. Les extensions sont des fichiers
00:08:28TypeScript chargés directement par JITI, sans étape de compilation.
00:08:33Une extension peut enregistrer des outils, des commandes et des raccourcis clavier.
00:08:38Elle peut s'abonner aux événements du cycle de vie comme le début de session,
00:08:44les appels d'outils et le choix du modèle. Elle peut interagir via des dialogues
00:08:49de confirmation, des menus et des prompts. Elle peut même afficher des composants
00:08:55TUI personnalisés. L'API d'extension donne accès à tout ce que le cœur peut
00:09:01faire. C'est là que les omissions délibérées de Pi s'expliquent. Pas de système
00:09:06de permissions ? Écrivez une extension qui demande confirmation. Pas de
00:09:11sous-agents ? Lancez des instances de Pi via TMUX ou une extension de coordination.
00:09:16Pas de MCP ? Créez une compétence avec un outil CLI ou une extension qui ajoute
00:09:20le support MCP. Pas de mode plan ? Écrivez vos plans en Markdown ou gérez-les
00:09:27selon vos préférences via une extension. Le rendu terminal de Pi est aussi sur
00:09:33mesure. Le package Pi-2e utilise un rendu différentiel pour minimiser les mises à
00:09:40jour et le protocole CSI 2026 pour des mises à jour atomiques sans scintillement.
00:09:45Il possède son propre système de composants : conteneurs, éditeurs, rendu
00:09:51Markdown, support d'images et listes. Le TUI de l'agent est bâti entièrement là-dessus.
00:09:56Côté outils, Pi est livré avec sept outils intégrés : READ, bash, edit, write,
00:10:02grep, find et ls. C'est un ensemble délibérément minimal. L'outil bash supporte
00:10:07le sandboxing Docker et le streaming en temps réel. L'outil d'édition utilise le
00:10:13format unified diff. Tous les outils valident leurs arguments avec AJV et
00:10:18supportent l'exécution parallèle par défaut, permettant à plusieurs appels du
00:10:25LLM de s'exécuter en même temps. Comparons-les maintenant sur les points clés.
00:10:30Support des fournisseurs. Les deux supportent plus de 20 fournisseurs et n'importe
00:10:36quelle API compatible OpenAI. Open Code utilise le SDK Vercel, héritant des
00:10:42nouveaux ajouts de l'écosystème. Pi a sa propre bibliothèque, offrant plus de
00:10:48contrôle mais exigeant une intégration manuelle. En pratique, les deux couvrent tout.
00:10:53Modèle d'agent : Open Code offre plusieurs agents spécialisés et permet d'en changer
00:10:59d'une touche. Pi n'en propose qu'un et vous invite à construire les autres
00:11:06via des extensions. Si vous voulez des modes prêts à l'emploi, Open Code gagne.
00:11:12Si vous préférez bâtir votre propre topologie, Pi est fait pour vous.
00:11:18Stockage : Open Code utilise SQLite, Pi utilise des fichiers JSONL. SQLite offre
00:11:22l'intégrité et l'efficacité des requêtes. Le JSONL est lisible par l'humain avec
00:11:27CAT ou GREP, et la structure en arbre de Pi est élégante. Les deux permettent
00:11:33de bifurquer les sessions, mais l'interface de navigation de Pi est remarquable.
00:11:37Sécurité : Open Code a un système complet avec dialogues d'approbation et
00:11:42mémoire persistante. Pi n'en a pas au cœur et délègue cela aux extensions.
00:11:47Si vous voulez des garde-fous immédiats, choisissez Open Code. Si vous gérez
00:11:53votre propre sécurité (via Docker), l'approche de Pi offre plus de flexibilité.
00:11:58Support MCP : Open Code le supporte pleinement (OAuth, transports, outils).
00:12:04Pi le rejette explicitement au profit des compétences (outils CLI avec README).
00:12:08Mario Zechner soutient que le MCP complexifie inutilement ce qu'un simple outil
00:12:13CLI peut faire. Si votre flux dépend déjà de MCP, Open Code est le bon choix.
00:12:19Si vous préférez la philosophie Unix des petits outils, Pi vous plaira davantage.
00:12:25Intelligence du code : Open Code intègre LSP, donnant au modèle accès aux types,
00:12:30définitions et références. Pi n'inclut pas LSP en interne. Cela donne un avantage
00:12:35à Open Code pour les langages fortement typés où le contexte améliore la précision.
00:12:41Interface : Les deux ont des TUI sophistiqués mais bâtis différemment.
00:12:48Open Code utilise Solid.js ; Pi utilise son propre framework Pi-2E. Les deux
00:12:54sont réactifs. Open Code propose aussi une application desktop et une console
00:13:00web. Pi est exclusivement terminal, bien qu'il offre une bibliothèque web.
00:13:04Configuration : Les deux utilisent du JSON. Open Code utilise le JSONC (avec
00:13:10commentaires), ce qui est pratique. Pi utilise du JSON standard. La config
00:13:16d'Open Code est plus complexe car il y a plus de paramètres. Celle de Pi est
00:13:22access aux types, aux définitions et aux références. Pi n'inclut pas de LSP
00:13:28Posez-vous ces questions : Voulez-vous un outil complet dès le départ ou préférez-vous
00:13:32assembler votre flux ? Si vous voulez une installation en cinq minutes avec
00:13:37permissions, agents multiples, MCP et LSP, Open Code est fait pour ça.
00:13:42Si vous voulez un cœur minimal personnalisable via des extensions TypeScript,
00:13:48choisissez Pi. Quelle est l'importance du MCP pour vous ?
00:13:53Si vous l'utilisez déjà, Open Code le supporte nativement. Pi ne le fait pas,
00:13:58privilégiant les intégrations CLI. Travaillez-vous sur des langages typés ?
00:14:03Le support LSP d'Open Code offre une meilleure compréhension pour le TypeScript,
00:14:07Go ou Rust. Pour le Python, cet avantage est moindre. Voulez-vous une app
00:14:14desktop ou une interface web ? Open Code propose les deux ; Pi reste fidèle au
00:14:19terminal. Que pensez-vous du sandboxing ? Si vous voulez que l'agent demande
00:14:26avant toute action dangereuse, Open Code gère cela. Si vous préférez tout lancer
00:14:31dans un conteneur Docker, l'approche de Pi s'y prête très bien.
00:14:35Êtes-vous un utilisateur aguerri qui veut tout personnaliser ?
00:14:39Le système d'extensions de Pi est incroyablement puissant, permettant de modifier
00:14:45quasiment tout, de l'exécution des outils au TUI lui-même. Open Code a aussi
00:14:49des plugins, mais plus limités à des points d'accroche spécifiques. Voici le
00:14:56bilan honnête : Open Code est le produit le plus mature et complet aujourd'hui.
00:15:01Il offre plus par défaut et s'intègre à plus de systèmes. Pour la plupart des
00:15:06développeurs, Open Code est le pari le plus sûr. Pi est le design le plus
00:15:11intéressant. Son minimalisme et sa priorité aux extensions le rendent unique.
00:15:16Si vous êtes du genre à peaufiner votre config Neovim pendant des semaines,
00:15:22si vous voulez un agent qui travaille exactement comme vous le souhaitez, Pi
00:15:28récompense l'investissement, et sa navigation en arbre est la meilleure du marché.
00:15:34Les deux projets sont sous licence MIT, activement maintenus et supportent
00:15:39le même large éventail de fournisseurs LLM. Vous pouvez essayer les deux en une
00:15:44après-midi. Le code est sur GitHub et aucun ne requiert d'abonnement pour
00:15:51débuter. Installez-les, lancez-les sur la même base de code et voyez lequel
00:15:55correspond le mieux à votre façon de travailler.
00:16:00C'est la seule comparaison qui compte vraiment.
00:16:04D'un côté, une solution clé en main prête pour la production ;
00:16:10de l'autre, un moteur brut pour les bâtisseurs. Les deux font avancer
00:16:15l'état de l'art des outils de développement IA. Merci d'avoir regardé.
00:16:20N'oubliez pas d'aimer la vidéo et de vous abonner pour plus de revues
00:16:25techniques approfondies. À la prochaine dans le terminal !
00:16:30Dites-moi en commentaire lequel vous préférez ou si vous utilisez un autre
00:16:34agent open source. On se retrouve bientôt pour une nouvelle analyse.
00:16:40Gardez le code propre et l'IA à portée de main.
00:16:44C'était tout pour aujourd'hui, bon codage !
00:16:49Les liens vers les dépôts GitHub sont dans la description.
00:16:55N'hésitez pas à contribuer à ces projets fascinants.
00:17:01L'open source est le futur de l'ingénierie assistée par IA.
00:17:05À bientôt pour explorer ensemble de nouveaux outils.
00:17:09Prenez soin de vous et continuez d'innover.
00:17:14Fin de la transmission. Salut !
00:17:20et les deux supportent la même gamme de modèles LLM. Vous pouvez tester les deux en un
00:17:27après-midi. Le code est sur GitHub et aucun ne nécessite d'abonnement pour
00:17:31Écran de fin : vidéos suggérées.
00:17:37Merci de votre fidélité !
Community Posts
No posts yet. Be the first to write about this video!
Write about this video