基于 Agent Client Protocol 将 Claude Code、Codex、Gemini CLI 等 AI 编程代理集成到 Obsidian 笔记应用中的社区插件,支持笔记引用、多代理并行、终端集成与对话导出。
Agent Client Plugin for Obsidian 是一个将 AI 编程代理直接集成到 Obsidian 笔记应用中的社区插件,底层基于 Zed 提出的 Agent Client Protocol (ACP)。插件在 Obsidian 内提供完整的聊天界面,支持通过 @notename 引用 vault 中的笔记为代理提供上下文,支持图片附件、斜杠命令、终端命令执行及 MCP 服务器透传。
核心特性#
- Note Mentions:
@notename语法引用笔记,为代理提供知识上下文 - Multi-Agent Support:内置支持 Claude Code、Codex、Gemini CLI,同时支持 OpenCode、Qwen Code、Kiro、Mistral Vibe 等自定义代理
- Multi-Session:在独立视图中同时运行多个代理会话
- Floating Chat:可折叠的浮动聊天窗口
- Mode & Model Switching:在聊天中切换 AI 模型和代理模式
- Session History:恢复或分叉之前的对话
- Terminal Integration:代理可执行终端命令并返回结果
- Chat Export:将对话保存为 Markdown 笔记
- MCP Support:代理使用其自身配置的 MCP 服务器,无需在插件中额外设置
架构设计#
采用四层分层设计:
- Types(
src/types/):纯类型定义,无逻辑、无依赖 - ACP / Services(
src/acp/+src/services/):ACP 协议隔离层 + 非 React 业务逻辑,所有 SDK 依赖限定于此 - Hooks(
src/hooks/):React 状态管理,通过 useAgent facade hook 组合子 hook - UI(
src/ui/):React 组件,ChatPanel 为中央编排器
关键设计模式包括 useAgent Facade Pattern(单次 onSessionUpdate 订阅)、Single Event Channel(所有代理事件通过唯一通道传递)、ACP Isolation(type-converter.ts 作为协议变更缓冲层)、React Context for Services(依赖注入)。性能优化方面采用 RAF 批量流式更新、@tanstack/react-virtual 虚拟滚动、React.memo 及 O(1) 工具调用索引。代码规模约 19,800 行,56 个文件,主要语言 TypeScript(91.4%)、CSS(8.0%)。
安装与配置#
前置条件:Obsidian(macOS/Linux/Windows 含 WSL)、Node.js、至少一个已安装的 AI 代理及其 ACP 适配器。
推荐通过 BRAT 安装:Settings → BRAT → Add Beta Plugin → 粘贴仓库地址 → 启用 Agent Client。也可从 Releases 手动下载文件放入插件目录。
以 Claude Code 为例,需安装 claude 及 @agentclientprotocol/claude-agent-acp,然后在 Settings → Agent Client 中配置 Node.js 路径、代理可执行路径及 API Key。
当前状态#
版本 0.10.2,通过 BRAT 分发,尚未上架 Obsidian 官方社区插件市场。作者 RAIT-09 的背景信息未在仓库中公开。ACP 协议由 Zed 提出,生态成熟度需进一步跟踪。代理可通过终端集成执行任意命令,插件是否提供权限审批或沙箱机制未在材料中体现。