Emacs as the universal remote for ACP coding agents
A native Emacs shell that fronts multiple LLM agents through the Agent Client Protocol.

What it does
agent-shell turns an Emacs buffer into a chat interface for coding agents such as Claude, Gemini, Codex, and Goose. It uses the Agent Client Protocol to marshal requests to each vendor’s CLI, then streams the responses back into a native comint buffer via shell-maker. The result feels like a standard shell session, except the other end is an LLM agent.
The interesting bit
Rather than reimplementing agent logic in Emacs Lisp, the project bets on ACP as a narrow waist—standardizing on the protocol and letting external CLIs do the heavy lifting. This architectural thrift has spawned an entire ecosystem of satellite packages, from Org Babel backends to multi-agent coordination, suggesting Emacs is being repositioned as a control plane for agentic workflows.
Key highlights
- Supports a broad roster of agents: Claude, Gemini, Codex, Goose, Cursor, Auggie, Mistral Vibe, Qwen, and local Ollama models via Opencode.
- Feels native: runs inside a
comintbuffer throughshell-maker, leveraging Emacs’s existing shell infrastructure. - Environment variable handling includes inheritance from the parent Emacs process and loading from
.envfiles, which helps manage API keys and proxies. - Satellite ecosystem includes extensions for Org-mode transcripts, tab-bar workspaces, session management, and code review interfaces.
- Available on MELPA alongside its dependency packages
acp.elandshell-maker.
Caveats
- Every supported agent requires its own external CLI tool installed and available in PATH; this is a frontend, not a self-contained runtime.
- Upstream ACP support is uneven: some agents, like Google’s Gemini CLI, still need an
--experimental-acpflag.
Verdict
Worth a look if you already live in Emacs and want a single, keyboard-native interface for juggling multiple coding agents. If you prefer all-in-one IDEs or graphical chat interfaces, this will feel like unnecessary plumbing.
Frequently asked
- What is xenodium/agent-shell?
- A native Emacs shell that fronts multiple LLM agents through the Agent Client Protocol.
- Is agent-shell open source?
- Yes — xenodium/agent-shell is open source, released under the GPL-3.0 license.
- What language is agent-shell written in?
- xenodium/agent-shell is primarily written in Emacs Lisp.
- How popular is agent-shell?
- xenodium/agent-shell has 1.6k stars on GitHub and is currently accelerating.
- Where can I find agent-shell?
- xenodium/agent-shell is on GitHub at https://github.com/xenodium/agent-shell.