1 points par GN⁺ 2025-10-14 | 1 commentaires | Partager sur WhatsApp
  • agent-shell est un shell natif basé sur comint-mode qui permet de contrôler directement des agents IA depuis Emacs
  • En utilisant ACP (Agent Client Protocol), il offre la souplesse de communiquer avec divers agents sans dépendre d’un agent spécifique
  • Les fonctions d’analyse du trafic en temps réel et de relecture d’agents factices (fak) améliorent l’efficacité des tests et du développement
  • Même si toutes les fonctionnalités du protocole ne sont pas encore implémentées, le projet montre déjà une implémentation rapidement exploitable en conditions réelles
  • agent-shell et acp.el sont tous deux disponibles sur GitHub, et les retours des utilisateurs sur les fonctionnalités supplémentaires ou les bugs sont les bienvenus

Introduction

  • Récemment, acp.el, implémenté en Emacs Lisp, a rendu possible l’intégration avec Agent Client Protocol (ACP), développé conjointement par Zed et Google
  • Jusqu’ici, seules des intégrations de base avec des LLM comme chatgpt-shell étaient proposées, et l’usage à part entière des agents IA restait lent à se développer
  • Avec l’adoption d’ACP, la demande d’intégration d’agents dans l’environnement Emacs a augmenté, ce qui a conduit au développement du shell natif Emacs agent-shell

Aperçu de agent-shell

  • agent-shell repose sur comint-mode et fonctionne dans le système de buffers familier d’Emacs
  • Il fournit un environnement utilisable comme un shell Emacs classique, sans bascule séparée entre mode caractère et mode ligne

Agent-agnostic (indépendant des agents)

  • Grâce à ACP, il devient possible d’offrir une expérience utilisateur cohérente pour communiquer avec différents agents via un seul protocole
  • Les exemples de configuration montrent qu’il est possible d’appliquer divers agents comme Gemini CLI ou Claude Code avec de simples modifications de code
    • Exemple de code : explication de la manière de configurer l’authentification, les commandes et les variables d’environnement pour chaque agent
  • D’autres agents peuvent aussi être intégrés facilement de la même manière

Fonction d’affichage du trafic

  • Comme l’usage du protocole ACP n’était pas encore familier, il était nécessaire de analyser le trafic de communication en temps réel
  • agent-shell fournit un buffer d’affichage du trafic dédié, permettant de visualiser le trafic basé sur JSON avec la commande M-x agent-shell-view-traffic

Fake agents (agents factices et relecture)

  • En raison du coût et de l’inefficacité en temps liés au développement avec de vrais agents payants, une fonction de relecture d’agents factices a été introduite
  • En rejouant les données de communication enregistrées via le buffer de trafic, il devient possible d’effectuer plusieurs tests rapides
  • Malgré certaines contraintes et limites, cela améliore fortement l’efficacité du débogage et du processus de développement

Plans futurs et état actuel

  • Seule une partie du schéma Agent Client Protocol est implémentée, et certaines parties restent incomplètes
  • Des expérimentations UX innovantes sont en cours, comme un buffer rapide de diff basé sur les touches n/p et une boîte de dialogue d’autorisation
  • Les fonctionnalités restantes du protocole seront étudiées et implémentées par la suite

Publication sur GitHub et guide d’utilisation

  • agent-shell et acp.el sont tous deux publiés sur GitHub
    • agent-shell : un paquet destiné aux utilisateurs d’agents
    • acp.el : une bibliothèque destinée aux développeurs qui veulent créer des paquets d’intégration liés aux agents
  • Les deux projets en sont à un stade très précoce (bêta), et il est recommandé de soumettre des bugs et des demandes de fonctionnalités
  • L’utilisation de services LLM cloud entraîne des coûts supplémentaires, et le développement open source lui-même demande aussi des coûts et des efforts
  • Si le projet vous est utile, le soutien financier est encouragé

1 commentaires

 
GN⁺ 2025-10-14
Commentaires sur Hacker News
  • Xenodium fait des choses formidables dans Emacs ; si vous vous intéressez à Emacs, je recommande vivement de jeter un œil au blog de Xenodium. La première app iOS que j’ai achetée sur la recommandation d’autres utilisateurs d’Emacs est Journelly : c’est un espace portable pour enregistrer facilement des liens ou des notes et les exporter en fichiers org (avec prise en charge de markdown prévue à l’avenir). Je n’ai aucun lien avec Xenodium. Cette année, en approfondissant Emacs, j’ai pris énormément de plaisir à voir ses contributions.
    • Merci beaucoup, ce genre de retour illumine la journée. Ravi aussi que vous soyez fan de Journelly ; merci de l’avoir achetée. Continuer à développer des apps de niche est un vrai défi.
  • agent-shell offre une expérience native permettant d’utiliser directement dans Emacs divers agents IA propulsés par ACP (Agent Client Protocol). À l’heure actuelle, il fonctionne avec Claude Code, Gemini CLI, Codex et Goose, mais techniquement n’importe quel agent prenant en charge ACP peut être utilisé. Pour assurer un développement durable, davantage de sponsors sont nécessaires ; vous pouvez soutenir le projet via github sponsors.
    • Très intéressant. J’avais utilisé claude-code-ide, mais comme il n’utilise pas comint-mode, l’expérience était assez inconfortable. J’ai vraiment envie d’essayer agent-shell. J’ai une question : la spécification ACP couvre-t-elle aussi les fonctionnalités liées à l’« ide » (par exemple la position du curseur, l’intégration des diff, comme dans Claude code ide), ou se concentre-t-elle uniquement sur des fonctionnalités vraiment basiques ?
  • Agent shell est exactement ce que j’ai toujours voulu. J’ai essayé divers paquets d’intégration Claude code, mais il fallait les lancer dans un émulateur de terminal, ce qui était pénible. Agent shell donne une impression beaucoup plus naturelle et intégrée. J’attends particulièrement avec impatience la fonctionnalité de lecture de l’environnement depuis un fichier. J’aimerais aussi qu’il y ait des captures d’écran pour voir comment agent-shell-sidebar fonctionne réellement.
  • Xenodium fait un excellent travail pour la communauté Emacs. J’utilise actuellement agent-shell, mais je n’aime pas le header ajouté en haut du buffer. Toutes les informations dont j’ai besoin sont déjà en bas. Ce serait bien de pouvoir désactiver cette ligne de façon optionnelle pour les minimalistes.
    • Si vous n’aimez pas le header, j’aimerais que vous ouvriez une demande de fonctionnalité. Ce serait une bonne idée de pouvoir activer ou désactiver le header graphique de manière optionnelle.
  • J’ai utilisé agent-shell quelques fois et, malgré le fait que ce soit un paquet tout juste lancé, l’expérience est très fluide.
  • C’est la première fois que j’entends parler d’ACP. Je me demande en quoi c’est différent de AG-UI. Bien sûr, je comprends qu’ACP est spécialisé pour le code alors que AG-UI est bien plus généraliste, mais je suis curieux des autres différences.
    • C’est la même logique que LSP, mais appliquée aux agents IA. Devoir réimplémenter à chaque fois un wrapper pour chaque éditeur avec claude, codex, gemini, aider, etc., est pénible ; c’est pourquoi l’équipe de Zed a lancé la standardisation du protocole.
  • Il y a aussi un projet appelé ECA : GitHub d’ECA. ECA est un protocole d’agent de codage de style LSP pour plusieurs front-end et éditeurs. Il prend directement en charge divers modèles. En revanche, le protocole agent semble permettre d’utiliser, dans différents front-end, plusieurs agents comme Gemini CLI ou Claude Code selon qu’ils prennent en charge ou non ce protocole. On peut imaginer que divers agents de codage adopteront aussi le protocole ECA.
    • Exact, le projet ECA a aussi un paquet Emacs. Je l’utilise en ce moment. En déboguant un problème Emacs, j’ai parcouru la documentation du protocole ECA et celle d’ACP ; les deux se ressemblent beaucoup et sont bien documentés. C’est une réinvention redondante non intentionnelle.
    • J’ai utilisé les deux, et la description ci-dessus est correcte. Il faut reconfigurer les MCPs, et ECA fait tourner son propre serveur en arrière-plan ; pour ces raisons, j’ai préféré agent-shell. Chaque agent a un format et un emplacement de config différents, avec en plus des différences entre config projet et config utilisateur ; la simplicité de agent-shell est donc un gros avantage. Ce serait vraiment bien d’avoir un jour aussi un standard pour la configuration.
  • Je me demande pourquoi utiliser agent-shell au lieu d’utiliser simplement Claude Code directement.
    • Pour l’expérience d’interface native unifiée et totalement intégrée à l’éditeur de texte. Et pas seulement pour Claude Code : on peut utiliser de la même manière plusieurs agents compatibles ACP, comme Gemini CLI, Codex ou Goose.
    • C’est exactement l’esprit Emacs : Emacs est une entité qui dévore le monde.
  • J’attends que quelqu’un fasse ça pour Neovim. J’espère qu’un héros anonyme apparaîtra bientôt. Merci aussi à l’équipe de Zed et à Google d’avoir créé la spec.
    • Viens du côté Emacs, on prend aussi en charge tous les bindings vim.
    • Code Companion pour neovim prend déjà en charge ACP depuis longtemps ; plus d’informations ici