xenodium/agent-shell
A native Emacs buffer to interact with LLM agents powered by ACP
What it solves
agent-shell provides a native Emacs interface for interacting with various LLM-powered coding agents. It eliminates the need to switch between a standalone terminal and Emacs by integrating these agents directly into the editor as a shell, allowing users to leverage the Agent Client Protocol (ACP) to communicate with a wide array of AI agents.
How it works
The project is built on top of Emacs' comint-shell and uses the shell-maker package. It relies on acp.el to handle communication with agents via the Agent Client Protocol (ACP). It supports a vast range of agents, including Claude Agent, Codex, Gemini CLI, Goose, Grok Build, Cursor, Kimi Code, and others, by spawning them as processes and managing their environment variables and authentication (via API keys, OAuth, or login flows).
Who it’s for
Emacs users who want to integrate AI coding agents into their development workflow without leaving their editor.
Highlights
- Broad Agent Support: Compatible with numerous ACP-driven agents from providers like Anthropic, OpenAI, Google, xAI, and Mistral.
- Native Emacs Integration: Uses
comint-shellfor a seamless shell-like experience within Emacs. - Multimodal Capabilities: Supports pasting images from the clipboard and capturing screenshots to send to agents, provided the necessary platform-specific utilities are installed.
- Extensible Ecosystem: A large number of community-developed add-ons exist for features like sidebar integration, Docker sandboxing, and Org-mode transcripts.