Emacs原生AI编程Agent终端agent-shell:一次接入19款LLM智能体的终极指南
【免费下载链接】agent-shellA native Emacs buffer to interact with LLM agents powered by ACP项目地址: https://gitcode.com/gh_mirrors/ag/agent-shell
agent-shell是一个运行在 Emacs 内的原生 AI 编程 Agent 终端,它基于 ACP(Agent Client Protocol)协议,让你在一个 Emacs 缓冲区里就能接入并驾驭 Claude、Gemini、Codex 等 19 款 LLM 智能体——无需切换终端、无需浏览器,打字、审 diff、批准权限全部就地完成。
它是什么?为什么值得关注
传统玩法是"终端跑 CLI Agent + 编辑器写代码"两屏切换,而 agent-shell 把 Agent 的交互界面直接做成了 Emacs 主模式(major mode)。它底层依赖 acp.el 通信库,通过 ACP 协议与各智能体进程对话,因此只要一个 Agent 支持 ACP,agent-shell 就能"零适配成本"接入。
核心源码都在仓库根目录,可按需阅读:
- 主程序与主模式:agent-shell.el
- 聊天风格标签模式:agent-shell-chat-mode.el
- SUI 块折叠/导航 UI:agent-shell-ui.el
- 视口(Viewport)交互界面:agent-shell-viewport.el
上图虽名为 slash-commands,展示的是 agent-shell 把 Agent 暴露的 /commands 技能列表(如 /memory)渲染成可展开面板的效果——这是它与 CLI Agent 最大的体验差异之一:斜杠命令变成了 Emacs 里的原生 UI。
一次接入:19款LLM智能体全家福
agent-shell 内置了几乎所有主流编码 Agent 的启动配置(agent-shell-agent-configs),覆盖 19 款智能体,每款对应一个独立的接入模块:
| 智能体 | 厂商 | 接入模块 |
|---|---|---|
| Claude Agent | Anthropic | agent-shell-anthropic.el |
| Codex | OpenAI | agent-shell-openai.el |
| Gemini CLI / Antigravity | agent-shell-google.el、agent-shell-antigravity.el | |
| Goose | Block | agent-shell-goose.el |
| Grok Build | xAI | agent-shell-xai.el |
| Cursor | Anysphere | agent-shell-cursor.el |
| Kimi Code | 月之暗面 | agent-shell-kimi.el |
| CodeBuddy | 腾讯 | agent-shell-codebuddy.el |
| Qwen Code | 阿里 | agent-shell-qwen.el |
| Qoder CLI | 阿里 | agent-shell-qoder.el |
| Auggie | Augment | agent-shell-auggie.el |
| Mistral Vibe | Mistral | agent-shell-mistral.el |
| Factory Droid | Factory | agent-shell-droid.el |
| Kiro CLI | AWS | agent-shell-kiro.el |
| Junie | JetBrains | agent-shell-junie.el |
| OpenCode | SST | agent-shell-opencode.el |
| Cline | Cline | agent-shell-cline.el |
| Pi / Oh My Pi | 社区 | agent-shell-pi.el、agent-shell-omp.el |
| GitHub Copilot | GitHub | agent-shell-github.el |
最快安装与启动步骤
- 安装 Emacs 包(MELPA 已收录 agent-shell 及其依赖 acp、shell-maker),例如用
use-package加入:ensure t,并可顺带声明 Agent CLI 的系统包安装命令; - 在系统终端安装你想用的 Agent CLI(如 Claude Agent 需要
npm install -g @agentclientprotocol/claude-agent-acp,Gemini CLI 需要支持--experimental-acp的版本),并完成一次登录/鉴权; - 在 Emacs 里执行
M-x agent-shell,从候选列表选择智能体即可开工;加C-u前缀可强制新建会话。
如果偏好源码方式获取:
git clone https://gitcode.com/gh_mirrors/ag/agent-shellDoom Emacs 用户只需package! agent-shell后执行doom sync。完整配置示例见 README.org 的 Setup 章节。
日常使用:像聊天一样驱动编码Agent
进入 shell 缓冲区后,操作非常直觉:
- RET发送提示词;M-J换行;TAB / Shift-TAB在权限按钮等交互元素间移动
- C-c C-c中断当前 Agent 操作
- C-c C-w快速开/复用当前项目的 agent-shell
- 头部显示当前模型与会话模式,C-c C-v切换模型、C-c C-m切换模式、C-c C-t调整思考强度(reasoning effort),C-循环模式
几个面向老手的设计细节:
- 忙碌时可继续输入:Agent 忙时提交的提示词默认进入队列(agent-shell-prompt-queue.el),支持合并提交;Claude/Codex 还支持steer——把新指令直接"插"进正在进行的回合,及时纠偏而无需等它跑完。
- 视口模式:
C-c C-o打开 Viewport,一次只看一轮"提问-回答",r回复、b/f翻页,适合逐轮审阅(agent-shell-viewport.el)。 - 文件与截图直发:
@输入触发文件补全(agent-shell-completion.el),M-x agent-shell-send-screenshot截屏发给 Agent,拖拽文件进缓冲区也会自动以@path附上。 - diff 审阅:Agent 改文件前会弹出 Emacs 原生 diff 缓冲区(agent-shell-diff.el),逐块或一键接受/拒绝。
用Traffic视图看透ACP协议
出问题时,agent-shell 内置的协议流量查看器能帮你对齐"到底是 Agent 的锅还是客户端的锅":打开日志(M-x agent-shell-toggle-logging)复现问题,再M-x agent-shell-view-traffic,即可看到结构化的 ACP 请求/响应流,例如一条session/request_permission里携带的 allow/reject 选项,一目了然。
进阶玩法速览
- MCP 服务器统一配置:设置
agent-shell-mcp-servers,一次配置、所有 Agent 共享; - 容器化运行:通过
agent-shell-command-prefix把 Agent 跑进 Devcontainer/Docker,agent-shell-devcontainer.el 还能自动解析容器内外路径; - git worktree 隔离:
M-x agent-shell-new-worktree-shell自动建 worktree 再开 Agent,多路实验互不干扰(agent-shell-worktree.el); - Markdown 渲染:Agent 输出的 Markdown 由内置渲染器实时呈现,支持代码块高亮、图片缩放(agent-shell-markdown.el);
- 事件订阅:
agent-shell-subscribe-to可监听回合完成、工具调用等事件,方便对接通知、HUD 等生态插件。
结语
agent-shell 的价值在于"一次接入、处处一致":19 款 LLM 智能体共用同一套 Emacs 原生交互——补全、diff、权限、队列、流量调试一应俱全。装好 Emacs 包、装好一个 Agent CLI,M-x agent-shell之后你就可以专注于写代码本身了。完整功能清单、按键表和自定义变量请查阅仓库内的 README.org,更多细节与更新日志见 blog-post.org。
【免费下载链接】agent-shellA native Emacs buffer to interact with LLM agents powered by ACP项目地址: https://gitcode.com/gh_mirrors/ag/agent-shell
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考