1 Punkte von GN⁺ 2025-10-14 | 1 Kommentare | Auf WhatsApp teilen
  • agent-shell ist eine auf comint-mode basierende native Shell, mit der sich AI-Agenten direkt in Emacs steuern lassen
  • Mit ACP (Agent Client Protocol) bietet sie die Flexibilität, nicht an einen bestimmten Agenten gebunden zu sein und mit verschiedenen Agenten zu kommunizieren
  • Eine Echtzeit-Traffic-Analyse und die Funktion für Fake-Agent- Replays steigern die Effizienz bei Tests und Entwicklung
  • Obwohl noch nicht alle Protokollfunktionen implementiert sind, zeigt die Umsetzung bereits schnell ein praxistaugliches Niveau
  • agent-shell und acp.el sind beide auf GitHub veröffentlicht, und Feedback zu zusätzlichen Funktionen oder Bugs ist willkommen

Einführung

  • Kürzlich wurde durch das in Emacs Lisp implementierte acp.el die Anbindung an das von Zed und Google gemeinsam entwickelte Agent Client Protocol (ACP) möglich
  • Bisher wurde nur eine grundlegende Integration mit LLMs wie chatgpt-shell bereitgestellt, während der ernsthafte Einsatz von AI-Agenten eher schleppend voranging
  • Mit der Einführung von ACP wuchs der Bedarf an Agenten-Integration in der Emacs-Umgebung, was zur Entwicklung der nativen Emacs-agent-shell führte

Überblick über agent-shell

  • agent-shell basiert auf comint-mode und läuft innerhalb des vertrauten Buffersystems von Emacs
  • Dadurch entsteht eine Umgebung, die sich ohne separate Umschaltung zwischen Zeichen- und Zeilenmodus wie eine normale Emacs-Shell verwenden lässt

Agent-agnostisch

  • Dank ACP lässt sich mit einem einzigen Protokoll eine konsistente User Experience für die Kommunikation mit verschiedenen Agenten umsetzen
  • Anhand von Konfigurationsbeispielen wird gezeigt, wie sich verschiedene Agenten wie Gemini CLI oder Claude Code mit nur kleinen Codeänderungen einsetzen lassen
    • Beispielcode: Erläuterung der Konfiguration von Authentifizierung, Befehlen und Umgebungsvariablen für die jeweiligen Agenten
  • Auch andere Agenten lassen sich auf die gleiche Weise leicht integrieren

Traffic-Ansicht

  • Da noch keine Vertrautheit mit der Nutzung des ACP-Protokolls bestand, war es nötig, den Kommunikations-Traffic in Echtzeit zu analysieren
  • agent-shell bietet dafür einen eigenen Traffic-Viewer-Buffer, in dem sich JSON-basierter Traffic mit dem Befehl M-x agent-shell-view-traffic visuell prüfen lässt

Fake Agents (Fake-Agenten und Replays)

  • Wegen Kosten und zeitlicher Ineffizienz bei der Entwicklung mit echten kostenpflichtigen Agenten wurde die Funktion für Fake-Agent-Replays eingeführt
  • Gespeicherte Kommunikationsdaten aus dem Traffic-Buffer lassen sich wiedergeben, wodurch schnelle wiederholte Tests möglich werden
  • Es gibt zwar einige Einschränkungen und Grenzen, doch Debugging und Entwicklungsprozess werden deutlich effizienter

Weitere Pläne und aktueller Status

  • Derzeit ist nur ein Teil des Agent Client Protocol Schema implementiert, daher bleiben noch unvollständige Bereiche
  • Es wird mit innovativer UX experimentiert, etwa mit einem Quick-(diff)-Buffer auf Basis der Tasten n/p und einem Permission-Dialog
  • Geplant ist, den vollständigen Funktionsumfang des Protokolls zu erfassen und weiter zu implementieren

Veröffentlichung auf GitHub und Nutzungshinweise

  • agent-shell und acp.el sind beide auf GitHub veröffentlicht
    • agent-shell: ein Paket für Agenten-Nutzer
    • acp.el: eine Bibliothek für Entwickler, die Integrationspakete rund um Agenten erstellen möchten
  • Beide Projekte befinden sich noch in einer sehr frühen Beta-Phase; das Einreichen von Bugs und Feature-Requests wird empfohlen
  • Bei der Nutzung von Cloud-LLM-Diensten entstehen zusätzliche Kosten, und auch Open-Source-Entwicklung selbst erfordert Aufwand und Ressourcen
  • Wenn das Projekt nützlich ist, wird zur Unterstützung (Sponsoring) ermutigt

1 Kommentare

 
GN⁺ 2025-10-14
Hacker-News-Kommentare
  • Xenodium macht großartige Dinge mit Emacs; wer sich für Emacs interessiert, sollte sich unbedingt den Xenodium-Blog ansehen. Die erste iOS-App, die ich auf Empfehlung anderer Emacs-Nutzer gekauft habe, war Journelly. Die App ist ein portabler Ort, um Links oder Notizen bequem zu speichern und als org-Datei zu exportieren (Markdown-Unterstützung soll wohl ebenfalls kommen). Ich habe keinerlei Verbindung zu Xenodium. Es macht dieses Jahr großen Spaß, mich tiefer mit Emacs zu beschäftigen und seine Beiträge zu sehen.
    • Vielen Dank, solches Feedback macht den Tag gleich schöner. Freut mich auch, dass du ein Journelly-Fan bist, und danke für den Kauf. Es ist eine große Herausforderung, eine Nischen-App kontinuierlich weiterzuentwickeln.
  • agent-shell bietet eine native Erfahrung in Emacs, mit der sich verschiedene AI-Agenten, die auf ACP (Agent Client Protocol) basieren, direkt nutzen lassen. Derzeit funktioniert es mit Claude Code, Gemini CLI, Codex und Goose, technisch gesehen kann aber jeder Agent verwendet werden, der ACP unterstützt. Für eine nachhaltige Weiterentwicklung werden mehr Sponsoren benötigt; unterstützen kann man über GitHub Sponsors.
    • Sehr interessant. Ich habe claude-code-ide benutzt, fand es aber ziemlich unpraktisch, weil es nicht comint-mode verwendet. agent-shell möchte ich unbedingt ausprobieren. Eine Frage hätte ich aber: Deckt die ACP-Spezifikation auch Funktionen rund um eine „IDE“ ab, zum Beispiel Cursor-Position oder Diff-Integration wie in Claude Code IDE, oder konzentriert sie sich wirklich nur auf grundlegende Funktionen?
  • Agent shell ist genau das, was ich mir immer gewünscht habe. Ich habe verschiedene Integrationspakete für Claude Code ausprobiert, aber es war lästig, sie in einem Terminal-Emulator ausführen zu müssen. agent shell fühlt sich deutlich natürlicher und integrierter an. Besonders gespannt bin ich auf die Funktion, Umgebungsvariablen aus einer Datei zu lesen. Ich wünschte, es gäbe Screenshots, damit man sehen kann, wie agent-shell-sidebar tatsächlich aussieht.
  • Xenodium leistet großartige Arbeit für die Emacs-Community. Ich nutze agent-shell gerade, aber mir gefällt der Header nicht, der oben im Buffer hinzugefügt wird. Alle Informationen, die ich brauche, stehen bereits unten. Es wäre schön, wenn man die untere Zeile optional deaktivieren könnte, damit auch Minimalisten glücklich sind.
  • Ich habe agent-shell ein paar Mal benutzt, und obwohl das Paket noch ganz am Anfang steht, ist die Nutzung schon sehr flüssig.
  • Heute habe ich zum ersten Mal von ACP gehört. Mich würde interessieren, wie es sich von AG-UI unterscheidet. Mir ist natürlich klar, dass ACP auf Coding spezialisiert ist und AG-UI deutlich allgemeiner ausgelegt ist, aber mich interessieren die weiteren Unterschiede.
    • Im Grunde dieselbe Logik wie bei LSP, nur auf AI-Agenten angewendet. Für jeden Editor immer wieder neue Wrapper für claude, codex, gemini, aider usw. zu implementieren, ist mühsam. Deshalb hat das Zed-Team damit begonnen, das Protokoll zu standardisieren.
  • Es gibt auch ein Projekt namens ECA: ECA auf GitHub. ECA ist ein LSP-artiges Protokoll für Coding-Agenten für verschiedene Frontends und Editoren und unterstützt unterschiedliche Modelle direkt. Das Agent Protocol scheint dagegen dafür gedacht zu sein, verschiedene Agenten wie Gemini CLI oder Claude Code je nach Protokollunterstützung in verschiedenen Frontends nutzbar zu machen. Vielleicht könnten auch verschiedene Coding-Agenten das ECA-Protokoll übernehmen.
    • Genau, das ECA-Projekt hat auch ein Emacs-Paket. Ich benutze es in letzter Zeit. Beim Debuggen eines Emacs-Problems habe ich mir sowohl das ECA-Protokoll als auch die ACP-Dokumentation angesehen; die beiden sind ziemlich ähnlich und beide gut dokumentiert. Eine unbeabsichtigte Doppelerfindung.
    • Ich habe beide ausprobiert, und die Erklärung oben stimmt. Man muss MCPs erneut konfigurieren, und bei ECA läuft im Hintergrund ein eigener Server. Deshalb hat mir agent-shell besser gefallen. Jeder Agent hat ein anderes Konfigurationsformat und einen anderen Speicherort, dazu kommen Unterschiede zwischen projektbezogener und benutzerbezogener Konfiguration; gerade deshalb ist die Einfachheit von agent-shell ein großer Vorteil. Es wäre wirklich schön, wenn später auch noch ein Konfigurationsstandard entstünde.
  • Ich frage mich, warum man nicht einfach direkt Claude Code verwendet, statt extra agent-shell zu benutzen.
    • Wegen der vollständig in den Texteditor integrierten, einheitlichen nativen UI-Erfahrung. Und nicht nur Claude Code, sondern auch Gemini CLI, Codex, Goose und andere ACP-fähige Agenten lassen sich auf dieselbe Weise nutzen.
    • Genau so ist eben der Emacs-Stil. Emacs ist dazu da, die Welt zu verschlingen.
  • Ich warte darauf, dass jemand das für Neovim baut. Hoffentlich taucht bald ein namenloser Held auf. Danke auch an das Zed-Team und Google für die Spezifikation.
    • Komm zur Emacs-Seite, wir unterstützen sogar alle Vim-Bindings.
    • Code Companion für Neovim unterstützt ACP schon seit längerer Zeit. Hier gibt es weitere Informationen