claude-code-ide.el

GitHub
1.5k 88 简单 2 次阅读 昨天GPL-3.0插件Agent
AI 解读 由 AI 自动生成,仅供参考

claude-code-ide.el 是一款专为 Emacs 用户打造的 AI 编程助手集成插件。它将 Anthropic 的 Claude Code 命令行工具深度嵌入到 Emacs 环境中,打破了传统 AI 聊天窗口与编辑器之间的隔阂。

许多开发者在使用 AI 辅助编程时,常面临上下文割裂的问题:AI 无法感知当前打开的文件、选中的代码段或项目的整体结构。claude-code-ide.el 通过 Model Context Protocol (MCP) 建立了双向桥梁,让 AI 能够实时理解 Emacs 的工作状态。它不仅支持自动检测项目和会话管理,还能利用 Emacs 强大的生态能力,如 LSP 代码导航、Tree-sitter 语法分析以及 Flycheck/Flymake 诊断信息。

对于习惯 Emacs 工作流的软件开发者而言,这是一个提升效率的神器。你可以直接在编辑器内获得智能的代码重构建议,并通过集成的 ediff 视图在应用修改前进行审查。此外,它支持将任意 Emacs 命令暴露给 AI,实现高度定制化的自动化操作。claude-code-ide.el 让 AI 真正成为了懂你工作环境的智能伙伴,而非仅仅是外部的聊天机器人。

使用场景

一位资深 Emacs 开发者正在维护一个复杂的 C++ 项目,急需利用 AI 辅助重构核心模块并修复遗留 bug。

没有 claude-code-ide.el 时

  • 需要在终端运行 AI 命令与编辑器窗口间频繁切换,手动复制粘贴代码片段来提供上下文。
  • AI 无法感知当前光标位置或文件中的 LSP 诊断信息,给出的建议往往脱离实际报错环境。
  • 修改后的代码需手动合并到缓冲区,容易遗漏细节或在复杂冲突中引入新错误。
  • 缺乏对 Emacs 特定模式的理解,难以进行跨文件的全局搜索与结构化重构。

使用 claude-code-ide.el 后

  • claude-code-ide.el 自动识别当前编辑的文件和选中文本,无需手动复制即可传递完整上下文。
  • 通过 MCP 协议直接调用 LSP 功能,AI 能精准定位符号并理解语法树结构,建议更贴合代码逻辑。
  • 集成 ediff 视图展示差异,开发者可在应用更改前直观审查 AI 的修改建议,确保无误。
  • 支持项目级搜索与自定义 Elisp 命令,实现基于工作流的自动化重构操作,效率大幅提升。

claude-code-ide.el 让 AI 真正融入 Emacs 生态,将代码辅助从“外部聊天”升级为“内部协作”。

运行环境要求

操作系统
  • 未说明
GPU

未说明

内存

未说明

依赖
notes本工具为 Emacs 扩展包,非独立应用程序。需确保已安装 Claude Code CLI 并配置在系统 PATH 中。依赖 MCP 协议与 Emacs 进行双向通信。建议使用 vterm 或 eat 终端后端以支持彩色输出和交互。无特定 GPU 或内存要求,主要依赖 Emacs 环境及外部 CLI 服务。
python未说明
Emacs >= 28.1
Claude Code CLI
vterm
eat
use-package
claude-code-ide.el hero image

快速开始

#+TITLE: Emacs 的 Claude Code IDE #+AUTHOR: Yoav Orot #+EMAIL: orot.yoav@gmail.com #+DESCRIPTION: Emacs 的 Claude Code 集成 #+KEYWORDS: emacs, claude, ai, code-assistant #+OPTIONS: toc:t num:nil

[[https://github.com/manzaltu/claude-code-ide.el/actions/workflows/test.yml][file:https://github.com/manzaltu/claude-code-ide.el/workflows/CI/badge.svg]] [[https://www.gnu.org/software/emacs/][file:https://img.shields.io/badge/GNU%20Emacs-28--30-blueviolet.svg]] [[https://www.gnu.org/licenses/gpl-3.0][file:https://img.shields.io/badge/License-GPL%20v3-blue.svg]]

  • 概述

Emacs 的 Claude Code IDE 通过模型上下文协议 (Model Context Protocol, MCP) 提供与 Claude Code CLI 的原生集成。与简单的终端包装器不同,此软件包在 Claude 和 Emacs 之间创建了一个双向桥梁,使 Claude 能够理解并利用 Emacs 的强大功能——从语言服务器协议 (LSP) 和项目管理和自定义 Elisp 函数。这将 Claude 转变为真正的 Emacs 感知 AI 助手,它可以在您现有的工作流程中工作,并与您的整个 Emacs 生态系统进行交互。

** 功能

  • 自动项目检测和会话管理
  • 使用 =vterm= 或 =eat= 的全彩支持终端集成
  • 用于 IDE 集成的 MCP 协议实现
  • 支持文件操作、编辑器状态和工作区信息的工具支持
  • 可扩展的 MCP 工具服务器,用于访问 Emacs 命令(如 xrefs、tree-sitter、项目信息等)
  • 与 Flycheck 和 Flymake 的诊断集成
  • 带有 ediff 集成的高级差异视图(应用前修改建议)
  • 用于正确上下文切换的标签栏支持
  • 选择和缓冲区跟踪以提供更好的上下文感知

** Emacs 工具集成

此软件包使 Claude Code 能够通过 MCP 工具集成利用 Emacs 的全部功能。Claude 可以直接访问和利用 Emacs 的功能,包括:

  • 通过 xref 命令的*语言服务器协议 (Language Server Protocol, LSP)*集成,用于智能代码导航(eglot, lsp-mode 等)
  • Tree-sitter用于语法树分析,并在抽象语法树 (AST) 级别理解代码结构
  • Imenu用于结构化符号列表和文件内导航
  • Project集成用于感知项目的操作
  • 任何 Emacs 命令或函数都可以作为 MCP 工具暴露,允许 Claude:
    • 执行项目范围的搜索和重构
    • 访问专用模式及其功能
    • 执行针对您工作流程定制的自定义 Elisp 函数

这种深度集成意味着 Claude Code 了解您的项目上下文,并可以利用 Emacs 广泛的生态系统来提供更智能和上下文感知的辅助。

** 截图

*** 活动文件感知 #+CAPTION: Claude Code 自动知道您在 Emacs 中当前查看的文件 #+html: #+html:

Claude Code 自动知道您在 Emacs 中当前查看的文件

*** 代码选择上下文 #+CAPTION: Claude Code 可以访问和处理缓冲区中的选定文本 #+html: #+html:

Claude Code 可以访问和处理缓冲区中的选定文本

*** 带诊断的高级差异视图 #+CAPTION: 用于代码更改的集成 ediff 视图,Claude Code 能够直接访问打开文件中的诊断数据(错误、警告等) #+html: #+html:

用于代码更改的集成 ediff 视图,Claude Code 能够直接访问打开文件中的诊断数据(错误、警告等)

*** 自动文本提及 #+CAPTION: 在 Claude 对话中自动提及和引用选定的文本 #+html: #+html:

在 Claude 对话中自动提及和引用选定的文本

*** 会话恢复 #+CAPTION: 使用 --resume 标志恢复之前的 Claude Code 对话 #+html: #+html:

使用 --resume 标志恢复之前的 Claude Code 对话

  • 安装

** 前置条件

  • Emacs 28.1 或更高版本
  • 已安装 Claude Code CLI 并可从 PATH 访问
  • =vterm= 或 =eat= 软件包(用于终端支持)

** 安装 Claude Code CLI

请遵循 [[https://docs.anthropic.com/en/docs/claude-code][Claude Code 文档]] 中的安装说明。

** 安装 Emacs 软件包

目前,该软件包处于早期开发阶段。

要使用 =emacs-version= >= 30 和 =use-package= 配合 =vc= 绑定进行安装:

#+begin_src elisp (use-package claude-code-ide :vc (:url "https://github.com/manzaltu/claude-code-ide.el" :rev :newest) :bind ("C-c C-'" . claude-code-ide-menu) ; 设置您喜欢的快捷键 :config (claude-code-ide-emacs-tools-setup)) ; 可选地启用 Emacs MCP 工具 #+end_src

要使用 =use-package= 和 [[https://github.com/raxod502/straight.el][straight.el]] 进行安装:

#+begin_src emacs-lisp (use-package claude-code-ide :straight (:type git :host github :repo "manzaltu/claude-code-ide.el") :bind ("C-c C-'" . claude-code-ide-menu) ; 设置您喜欢的快捷键 :config (claude-code-ide-emacs-tools-setup)) ; 可选地启用 Emacs MCP 工具 #+end_src

*** Doom Emacs

在 =packages.el= 中:

#+begin_src emacs-lisp (package! claude-code-ide :recipe (:host github :repo "manzaltu/claude-code-ide.el")) #+end_src

在 =config.el= 中: #+begin_src emacs-lisp (use-package! claude-code-ide :bind ("C-c C-'" . claude-code-ide-menu) ; 设置您喜欢的快捷键 :config (claude-code-ide-emacs-tools-setup)) ; 可选地启用 Emacs MCP 工具 #+end_src

保存上述内容后,在终端运行:=doom sync=。

  • 使用

** 基本命令

与 Claude Code IDE 交互的最简单方法是通过瞬态菜单界面,它提供对所有可用命令的视觉访问。只需运行 =M-x claude-code-ide-menu= 即可打开交互式菜单。

| Command | Description | |-----------------------------------------+---------------------------------------------------| | =M-x claude-code-ide-menu= | 打开包含所有 Claude Code 命令的临时菜单 | | =M-x claude-code-ide-emacs-tools-setup= | 设置内置 MCP(模型上下文协议)工具(例如 xref(交叉引用)、project) | | =M-x claude-code-ide= | 为当前项目启动 Claude Code | | =M-x claude-code-ide-send-prompt= | 从 minibuffer(小缓冲区)输入向 Claude 发送提示词 | | =M-x claude-code-ide-continue= | 继续目录中最近的一次对话 | | =M-x claude-code-ide-resume= | 使用之前的对话恢复 Claude Code | | =M-x claude-code-ide-stop= | 停止当前项目的 Claude Code | | =M-x claude-code-ide-switch-to-buffer= | 切换到项目的 Claude buffer(缓冲区) | | =M-x claude-code-ide-list-sessions= | 列出所有活跃的 Claude Code 会话并切换 | | =M-x claude-code-ide-check-status= | 检查 Claude Code CLI(命令行接口)是否已安装并正常工作 | | =M-x claude-code-ide-insert-at-mentioned=| 将选中的文本发送到 Claude 提示词 | | =M-x claude-code-ide-send-escape= | 向 Claude 终端发送 Escape 键 | | =M-x claude-code-ide-insert-newline= | 在 Claude 提示词中插入换行符(发送 \ + Enter) | | =M-x claude-code-ide-toggle= | 切换 Claude Code 窗口的可见性 | | =M-x claude-code-ide-toggle-recent= | 全局切换最近的 Claude 窗口 | | =M-x claude-code-ide-show-debug= | 显示包含 WebSocket(Web 套接字)消息的调试 buffer(缓冲区) | | =M-x claude-code-ide-clear-debug= | 清除调试 buffer(缓冲区) |

** 多项目支持

Claude Code IDE 利用 Emacs 内置的 =project.el= 自动检测您的项目。每个项目都会获得一个独立的 Claude Code 实例,拥有唯一的 buffer(缓冲区)名称,例如 =claude-code[project-name]=。

您可以为不同的项目同时运行多个 Claude Code 实例。使用 =claude-code-ide-list-sessions= 查看所有活跃会话并在它们之间切换。

** 窗口管理

  • 当会话已经活跃时运行 =claude-code-ide= 将切换窗口可见性
  • 可以使用标准的 Emacs 窗口命令 (=C-x 0=) 关闭窗口而无需停止 Claude
  • 使用 =claude-code-ide-toggle-recent= 可以从任何地方切换最近的 Claude 窗口,无论您当前的项目上下文如何。当您不在项目目录下但想要快速隐藏/显示 Claude 时,这非常有用

** 使用 Ediff 查看差异

当启用 =claude-code-ide-use-ide-diff=(默认)时,Claude 的代码建议将通过 Emacs 强大的 =ediff=(Emacs 差异对比工具)界面显示。这提供了两个关键优势:

  1. 视觉差异比较 - 通过并排或统一差异视图查看 Claude 想要更改的确切内容
  2. 交互式编辑 - 您可以在应用之前修改 Claude 的建议

*** 如何使用 ediff:

  1. 当 Claude 建议代码更改时,=ediff= 会自动打开
  2. ediff 控制 buffer(缓冲区)变为活动状态(一个带有 ediff 命令的小窗口)
  3. Buffer A 显示当前代码,Buffer B 显示 Claude 的建议
  4. 您可以修改 Buffer B 以完善 Claude 提议的更改
  5. 在 ediff 控制 buffer(缓冲区)中按 =q= 退出
  6. 当被提示时,选择是否接受更改 (=y= 或 =n=)
  7. 如果您接受 (=y=),来自 Buffer B 的任何更改将被发送回 Claude 以应用于原始文件

这允许您在应用之前完善 Claude 的建议,确保最终代码符合您的确切要求。

** 配置

*** 配置变量

| Variable | Description | Default | |-----------------------------------------------+---------------------------------------------+--------------------------------------| | claude-code-ide-cli-path | Claude Code CLI (命令行接口) 路径 | "claude" | | claude-code-ide-buffer-name-function | 缓冲区命名函数 | claude-code-ide--default-buffer-name | | claude-code-ide-cli-debug | 启用 CLI 调试模式(-d 标志) | nil | | claude-code-ide-cli-extra-flags | 其他 CLI 标志(例如 "--model") | "" | | claude-code-ide-debug | 启用调试日志记录 | nil | | claude-code-ide-terminal-backend | 终端后端(vterm 或 eat) | 'vterm | | claude-code-ide-vterm-anti-flicker | 启用 vterm 闪烁减少功能 | t | | claude-code-ide-vterm-render-delay | vterm 渲染批处理延迟(秒) | 0.005 | | claude-code-ide-terminal-initialization-delay | 终端初始化延迟 | 0.1 | | claude-code-ide-log-with-context | 在日志消息中包含会话上下文 | t | | claude-code-ide-debug-buffer | 调试输出缓冲区名称 | "claude-code-ide-debug" | | claude-code-ide-use-side-window | 使用侧边窗口还是普通缓冲区 | t | | claude-code-ide-window-side | Claude 窗口所在侧 | 'right | | claude-code-ide-window-width | 侧边窗口宽度(左/右) | 90 | | claude-code-ide-window-height | 侧边窗口高度(上/下) | 20 | | claude-code-ide-focus-on-open | 打开时聚焦 Claude 窗口 | t | | claude-code-ide-focus-claude-after-ediff | 打开 ediff (差异比较工具) 后聚焦 Claude 窗口 | t | | claude-code-ide-show-claude-window-in-ediff | ediff 期间显示 Claude 窗口 | t | | claude-code-ide-use-ide-diff | 使用 IDE 差异查看器而非终端 | t | | claude-code-ide-switch-tab-on-ediff | 打开 ediff 时切换到 Claude 标签页 | t | | claude-code-ide-system-prompt | 要追加的自定义系统提示词 | nil | | claude-code-ide-enable-mcp-server | 启用 MCP (模型上下文协议) 工具服务器 | nil | | claude-code-ide-mcp-server-port | MCP 工具服务器端口 | nil (自动选择) | | claude-code-ide-mcp-server-tools | 暴露的 Emacs 函数列表 | nil | | claude-code-ide-diagnostics-backend | 诊断后端(自动/flycheck/flymake) | 'auto | | claude-code-ide-prevent-reflow-glitch | 防止终端重排故障(问题 #1422) | t |

*** 侧边窗口配置

Claude Code 缓冲区默认在侧边窗口中打开。您可以自定义其位置:

#+begin_src emacs-lisp ;; Open Claude on the left side (setq claude-code-ide-window-side 'left)

;; Open Claude at the bottom with custom height (setq claude-code-ide-window-side 'bottom claude-code-ide-window-height 30)

;; Open Claude on the right with custom width (setq claude-code-ide-window-side 'right claude-code-ide-window-width 100)

;; Don't automatically focus the Claude window (setq claude-code-ide-focus-on-open nil)

;; Keep focus on ediff control window when opening diffs (setq claude-code-ide-focus-claude-after-ediff nil)

;; Hide Claude window during ediff for more screen space (setq claude-code-ide-show-claude-window-in-ediff nil)

;; Disable IDE diff viewer to show diffs in terminal instead (setq claude-code-ide-use-ide-diff nil) #+end_src

或者,如果您更喜欢使用普通窗口:

#+begin_src emacs-lisp ;; Use regular window instead of side window (setq claude-code-ide-use-side-window nil) #+end_src

*** 终端后端配置

Claude Code IDE 支持将 =vterm= 和 =eat= 作为终端后端。默认情况下使用 =vterm=,但如果您偏好,可以切换到 =eat=:

#+begin_src emacs-lisp ;; Use eat instead of vterm (setq claude-code-ide-terminal-backend 'eat)

;; Or switch back to vterm (default) (setq claude-code-ide-terminal-backend 'vterm) #+end_src

=eat= 后端是一个纯 Elisp (Emacs Lisp) 终端模拟器,在某些 =vterm= 编译存在问题的环境中可能表现更好。两个后端均提供完整的终端功能,包括颜色支持和特殊按键处理。

**** vterm 渲染优化

Claude Code IDE 包含针对 vterm 终端的智能闪烁减少功能,以提供更流畅的视觉输出:

#+begin_src emacs-lisp ;; Enable/disable vterm anti-flicker optimization (enabled by default) (setq claude-code-ide-vterm-anti-flicker t)

;; Adjust the render delay for batching updates (default is 0.005 seconds) (setq claude-code-ide-vterm-render-delay 0.01) ; Increase for smoother but less responsive #+end_src

此优化会检测快速的终端重绘序列(例如当 Claude 扩展文本区域时),并将它们批处理以实现更流畅的渲染。5ms 的默认延迟提供了最佳的视觉效果且延迟不可感知。

**** 终端初始化延迟

Claude Code IDE 在启动终端时包含短暂的初始化延迟,以确保正确的布局渲染:

#+begin_src emacs-lisp ;; Adjust the terminal initialization delay (default is 0.1 seconds) (setq claude-code-ide-terminal-initialization-delay 0.15)

;; Or disable it entirely (may cause visual glitches) (setq claude-code-ide-terminal-initialization-delay 0) #+end_src

此延迟可防止显示伪影,例如终端模拟初始化时可能出现的提示符未对齐和光标定位错误。默认的 100ms 延迟是不可感知的,但能确保可靠的终端启动。

**** 终端快捷键绑定

Claude Code IDE 为终端添加了自定义快捷键,以便更轻松地交互:

| 快捷键 | 命令 | 描述 | |--------+--------------------------------------+--------------------------------| | =M-RET= | =claude-code-ide-insert-newline= | 在提示符中插入换行 | | =C-= | =claude-code-ide-send-escape= | 发送 Escape 键以取消操作 |

这些快捷键会自动为 =vterm= 和 =eat= 后端设置,并且仅适用于 Claude Code 终端缓冲区。

**** 终端重排故障预防(临时)

Claude Code IDE 包含一个针对已知 Claude Code 错误 ([[https://github.com/anthropics/claude-code/issues/1422][#1422]]) 的临时解决方案,该错误会导致窗口调整大小时终端重排引起不可控的滚动。此解决方案默认启用,但如有需要可禁用:

#+begin_src emacs-lisp ;; Disable the terminal reflow glitch prevention (not recommended until bug is fixed) (setq claude-code-ide-prevent-reflow-glitch nil) #+end_src

一旦上游错误修复,此解决方案将被移除。

*** 诊断配置

Claude Code IDE 支持使用 Flycheck 和 Flymake 进行代码诊断。默认情况下,它会自动检测哪一个处于激活状态:

#+begin_src emacs-lisp ;; Let Claude Code automatically detect the active diagnostics backend (setq claude-code-ide-diagnostics-backend 'auto) ; default

;; Or force a specific backend (setq claude-code-ide-diagnostics-backend 'flycheck) (setq claude-code-ide-diagnostics-backend 'flymake) #+end_src

*** 自定义缓冲区命名

您可以自定义 Claude Code 缓冲区的命名方式:

#+begin_src emacs-lisp (setq claude-code-ide-buffer-name-function (lambda (directory) (if directory (format "Claude:%s" (file-name-nondirectory (directory-file-name directory))) "Claude:Global"))) #+end_src

*** 自定义 CLI 标志

您可以向 Claude Code CLI (命令行界面) 传递额外的标志:

#+begin_src emacs-lisp ;; Use a specific model (setq claude-code-ide-cli-extra-flags "--model opus")

;; Pass multiple flags (setq claude-code-ide-cli-extra-flags "--model opus --no-cache")

;; Flags are added to all Claude Code sessions #+end_src

注意:这些标志会追加到 Claude 命令之后,位于任何内置标志(如 =-d= (调试) 或 =-r= (恢复))之后。

*** 自定义系统提示词

您可以将自定义系统提示词附加到 Claude 的默认提示词中,从而针对特定项目或上下文自定义 Claude 的行为:

#+begin_src emacs-lisp ;; Set a custom system prompt (setq claude-code-ide-system-prompt "You are an expert in Elisp and Emacs development.")

;; Or configure it per-project using dir-locals.el ;; In .dir-locals.el: ((nil . ((claude-code-ide-system-prompt . "Focus on functional programming patterns and avoid mutations."))))

;; Set via the transient menu: M-x claude-code-ide-menu → Configuration → Set system prompt #+end_src

设置后,这会将 =--append-system-prompt= 标志添加到 Claude 命令中。设置为 =nil= 以禁用(默认)。

*** 调试

**** Claude CLI 调试模式

要启用 Claude Code CLI 的调试模式(传递 =-d= 标志):

#+begin_src emacs-lisp (setq claude-code-ide-cli-debug t) #+end_src

**** Emacs 调试日志记录

要在 Emacs 内启用调试日志记录(记录 WebSocket 消息和 JSON-RPC 通信):

#+begin_src emacs-lisp (setq claude-code-ide-debug t) #+end_src

然后使用以下命令查看调试日志:

  • =M-x claude-code-ide-show-debug= - 显示调试缓冲区
  • =M-x claude-code-ide-clear-debug= - 清除调试缓冲区

调试缓冲区显示:

  • WebSocket 连接事件
  • 所有 JSON-RPC 消息(请求/响应)
  • 错误消息和诊断信息
  • 带有会话上下文的通用调试信息

** 单个项目上的多个 Claude Code 实例

使用 git worktrees (git 工作树) 是在同一项目的不同分支上运行多个 Claude Code 实例的推荐方式。这允许您并行开发功能或修复错误:

#+begin_src bash

为功能分支创建新的 worktree (工作树)

git worktree add ../myproject-worktree feature-branch #+end_src

#+begin_src elisp ;; Start Claude Code in the main project find-file /path/to/myproject M-x claude-code-ide

;; Start another Claude Code instance in the worktree find-file /path/to/myproject-worktree M-x claude-code-ide #+end_src

每个 worktree (工作树) 都被 =project.el= 视为独立的项目,允许您拥有独立的 Claude Code 会话,并拥有各自的缓冲区(例如 =claude-code[myproject]= 和 =claude-code[myproject-worktree]=)。

** Emacs MCP (Model Context Protocol) 工具

Claude Code IDE 包含内置的 MCP 工具,将 Emacs 功能暴露给 Claude,从而实现强大的代码导航和分析能力:

*** 内置工具

  • =xref-find-references= - 查找项目中符号的所有引用
  • =xref-find-apropos= - 在整个项目中查找匹配模式的符号
  • =treesit-info= - 获取 tree-sitter 语法树信息以进行深层代码结构分析
  • =imenu-list-symbols= - 使用 imenu 列出文件中所有符号(函数、类、变量)
  • =project-info= - 获取当前项目信息(目录、文件等)

*** 启用 MCP 工具

要启用这些工具,请将以下内容添加到您的配置中:

#+begin_src emacs-lisp ;; Set up the built-in Emacs tools (claude-code-ide-emacs-tools-setup) #+end_src

启用后,Claude 可以使用这些工具来浏览您的代码库。例如:

  • "查找函数 foo 的定义"
  • "显示此变量使用的所有位置"
  • "光标下的 AST (抽象语法树) 节点是什么类型?"
  • "分析整个文件的解析树"
  • "列出此文件中的所有函数和变量"
  • "此项目中有多少文件?"

** 创建自定义 MCP 工具

您可以通过 MCP 工具系统将自己的 Emacs 函数暴露给 Claude。这允许 Claude 与专门的 Emacs 功能、自定义命令或特定领域的功能进行交互。

*** 工具定义格式

使用 =claude-code-ide-make-tool= 函数定义工具:

#+begin_src emacs-lisp (claude-code-ide-make-tool :function #'function-name ; The Emacs function to call :name "tool_name" ; Name for Claude to use (snake_case recommended) :description "..." ; Human-readable description :args '((:name "param1" ; List of argument specifications :type string ; Type: string, number, integer, boolean, etc. :description "..." ; What this parameter does :optional t))) ; Optional parameters marked with :optional t #+end_src

可用的参数类型:=string=, =number=, =integer=, =boolean=, =array=, =object=, =null=

*** 上下文感知工具示例

#+begin_src emacs-lisp ;; Define a context-aware function that operates in the session's project (defun my-project-grep (pattern) "Search for PATTERN in the current session's project." (claude-code-ide-mcp-server-with-session-context nil ;; This executes with the session's project directory as default-directory (let* ((project-dir default-directory) (results (shell-command-to-string (format "rg -n '%s' %s" pattern project-dir)))) results)))

;; Define and register the tool (automatically added to claude-code-ide-mcp-server-tools) (claude-code-ide-make-tool :function #'my-project-grep :name "my_project_grep" :description "Search for pattern in project files" :args '((:name "pattern" :type string :description "Pattern to search for")))

;; Enable Emacs tool MCP server (claude-code-ide-emacs-tools-setup) #+end_src

=claude-code-ide-mcp-server-with-session-context= 宏确保您的工具在正确的项目上下文中执行。

  • 许可证

本项目采用 GNU 通用公共许可证 v3.0 或更高版本授权。有关详细信息,请参阅 LICENSE 文件。

  • 商标声明

Claude® 是 Anthropic, PBC 的注册商标。Claude Code 是由 Anthropic, PBC 开发的应用程序。

  • 相关项目

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架

OpenHands

OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。

70.6k|★★★☆☆|今天
语言模型Agent开发框架