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é !

Key Takeaway

Le choix entre ces agents dépend de la préférence pour une solution clé en main complète avec LSP et MCP intégrés chez Open Code, ou pour un moteur minimaliste et agressivement extensible via TypeScript chez Pi.

Highlights

  • Open Code et Pi sont deux agents de codage open source écrits en TypeScript sous licence MIT supportant plus de 20 fournisseurs de LLM.

  • Open Code intègre nativement le support LSP pour TypeScript, Python, Go et Rust afin d'améliorer la précision via l'intelligence du code.

  • L'architecture de Pi repose sur un système de fichiers JSONL permettant une navigation dans l'historique sous forme d'arbre et le branchement via une commande fork.

  • Open Code utilise le SDK Vercel AI version 5 et Bun pour assurer des démarrages et des exécutions plus rapides que Node.

  • Pi se distingue par son framework de rendu terminal Pi-2e qui utilise le protocole CSI 2026 pour des mises à jour atomiques sans scintillement.

  • Le système de permissions d'Open Code permet de restreindre les modifications de fichiers spécifiques comme les .env ou de bloquer les commandes shell en production.

Timeline

Dualité philosophique des agents de codage

  • Open Code adopte une approche logicielle complète incluant par défaut des agents spécialisés et une interface de bureau Tauri.
  • Pi privilégie un noyau minimaliste sans permissions ni sous-agents intégrés pour éviter de dicter un flux de travail spécifique.
  • Les deux outils fonctionnent comme des alternatives open source à Claude Code au sein du terminal.

Le conflit entre ces deux outils réside dans leur conception structurelle. Open Code vise une productivité immédiate avec des réglages par défaut sensés, tandis que Pi se veut une base brute que le développeur doit façonner. Cette différence s'exprime par la présence ou l'absence de fonctionnalités telles que le support du Model Context Protocol ou les systèmes de planification intégrés.

Architecture technique et gestion des données d'Open Code

  • Le moteur principal repose sur une base de données SQLite avec l'ORM Drizzle pour garantir l'intégrité transactionnelle des sessions.
  • Un système multi-agents permet de basculer entre des modes Build, Plan et Explorer via la touche Tab.
  • L'intégration native des serveurs LSP fournit au modèle des informations sur les définitions et les références de symboles.

L'utilisation de SQLite en mode WAL optimise les performances de lecture concurrente pour les messages et les identifiants. Le système de permissions granulaires filtre chaque appel d'outil selon des motifs de fichiers définis par l'utilisateur. L'adoption du SDK Vercel AI permet à Open Code de supporter automatiquement les nouveaux fournisseurs de modèles dès leur ajout à l'écosystème.

Extensibilité et innovation de l'interface chez Pi

  • Pi utilise sa propre couche d'abstraction Pi-AI supportant plus de 30 fournisseurs dont Minimax et Kimi.
  • Les extensions TypeScript sont chargées directement par JITI sans étape de compilation pour modifier le comportement du noyau.
  • Le rendu différentiel du terminal minimise les mises à jour visuelles pour une interface utilisateur fluide.

L'absence de fonctionnalités natives comme le sandboxing est compensée par une API d'extension puissante capable d'injecter des outils et de s'abonner aux événements du cycle de vie. Le stockage en format JSONL transforme chaque ligne en objet JSON avec un identifiant parent, facilitant l'inspection via des outils Unix standards. L'outil bash intégré supporte nativement le streaming en temps réel et l'exécution dans des conteneurs Docker.

Critères de sélection et bilan comparatif

  • Open Code surpasse Pi pour les langages fortement typés grâce à son support LSP intégré.
  • La navigation en arbre de Pi offre la meilleure expérience du marché pour la gestion et le branchement des sessions de discussion.
  • Les deux projets utilisent la licence MIT et ne nécessitent aucun abonnement pour être déployés localement.

Le choix final s'oriente vers Open Code pour les développeurs cherchant un produit mature, sécurisé par des dialogues d'approbation et prêt pour la production. Pi s'adresse aux utilisateurs avancés souhaitant un contrôle total sur leur configuration, comparable à la personnalisation d'un environnement Neovim. La compatibilité avec MCP est le point de rupture majeur, Open Code l'intégrant pleinement tandis que Pi le rejette au profit d'outils CLI simples.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video