🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

笔记库 AI 助手 ben4202121/buddybridge

DeepSeek Harness
ben42021219 天前有提交已提供中文文档扫描:含敏感能力

把 Obsidian 连接到本地 WorkBuddy / CodeBuddy 命令行,为你的仓库配一个 AI…

35.5/100
综合分
8
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ben4202121/buddybridge
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包obsidian-buddybridge(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 16:36:23

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 42 处,展示前 42 条)
  • 发起网络请求
    main.js:317
    await this.request("initialize", {
  • 发起网络请求
    main.js:603
    const p = conn.request("session/prompt", {
  • 发起网络请求
    main.js:706
    await conn.request("session/load", { sessionId: key, cwd: vaultPath != null ? vaultPath : "", mcpServers: [] });
  • 发起网络请求
    main.js:712
    const res = await conn.request("session/new", { cwd: vaultPath != null ? vaultPath : "", mcpServers: [] });
  • 发起网络请求
    main.js:734
    await handle.conn.request("session/load", { sessionId: handle.acpUuid, cwd: (_a = handle.cwd) != null ? _a : "", mcpServers: [] });
  • 发起网络请求
    main.js:736
    const res = await handle.conn.request("session/new", { cwd: (_b = handle.cwd) != null ? _b : "", mcpServers: [] });
  • 写入剪贴板
    main.js:3380
    await navigator.clipboard.writeText(promptText);
  • 写入剪贴板
    main.js:4502
    void navigator.clipboard.writeText(cmd).then(
  • 发起网络请求
    src/acp/manager.ts:189
    const p = conn.request('session/prompt', {
  • 发起网络请求
    src/acp/manager.ts:295
    await conn.request('session/load', { sessionId: key, cwd: vaultPath ?? '', mcpServers: [] });
  • 发起网络请求
    src/acp/manager.ts:302
    const res = await conn.request('session/new', { cwd: vaultPath ?? '', mcpServers: [] });
  • 发起网络请求
    src/acp/manager.ts:327
    await handle.conn.request('session/load', { sessionId: handle.acpUuid, cwd: handle.cwd ?? '', mcpServers: [] });
  • 发起网络请求
    src/acp/manager.ts:329
    const res = await handle.conn.request('session/new', { cwd: handle.cwd ?? '', mcpServers: [] });
  • 执行外部命令来自配置/变量
    src/acp/transport.ts:101
    proc = spawn(scriptPath, cliArgs, procOptions);
  • 执行外部命令来自配置/变量
    src/acp/transport.ts:105
    proc = spawn(nodeBin, [scriptPath, ...cliArgs], procOptions);
  • 发起网络请求
    src/acp/transport.ts:205
    await this.request('initialize', {
  • 执行外部命令固定命令
    src/acp/transport.ts:247
    spawn('taskkill', ['/pid', String(proc.pid), '/T', '/F']);
  • 执行外部命令固定命令
    src/api.ts:16
    spawn('taskkill', ['/pid', String(proc.pid), '/T', '/F']);
  • 读取本地文件
    src/api.ts:106
    const versions = fs.readdirSync(wbNodeVersionsDir);
  • 读取本地文件
    src/api.ts:138
    if (fs.existsSync(nodePath) && fs.statSync(nodePath).isFile()) {
  • 读取本地文件
    src/api.ts:157
    if (process.env.CODEBUDDY_PATH && fs.existsSync(process.env.CODEBUDDY_PATH)) {
  • 读取本地文件
    src/api.ts:216
    if (fs.existsSync(p)) {
  • 读取本地文件
    src/api.ts:231
    if (fs.existsSync(p)) return p;
  • 执行外部命令来自配置/变量
    src/api.ts:599
    proc = spawn(scriptPath, cliArgs, procOptions);
  • 执行外部命令来自配置/变量
    src/api.ts:603
    proc = spawn(nodeBin, [scriptPath, ...cliArgs], procOptions);
  • 读取本地文件
    src/auth-assist.ts:111
    raw = await readFile(cliSettingsPath(homeDir), 'utf-8');
  • 读取本地文件
    src/auth-assist.ts:134
    const st = statSync(join(base, m));
  • 写入本地文件
    src/auth-assist.ts:155
    await mkdir(join(homeDir, '.codebuddy'), { recursive: true });
  • 写入本地文件
    src/auth-assist.ts:156
    await writeFile(path, JSON.stringify(patched, null, 2) + '\n', 'utf-8');
  • 读取本地文件
    src/models.ts:42
    const entries = await readdir(dir, { withFileTypes: true });
  • 读取本地文件
    src/models.ts:66
    const text = await readFile(filePath, 'utf-8');
  • 写入剪贴板
    src/settings/tab.ts:413
    void navigator.clipboard.writeText(cmd).then(
  • 读取本地文件
    src/skills.ts:39
    text = await readFile(filePath, 'utf-8');
  • 读取本地文件
    src/skills.ts:80
    text = await readFile(manifestPath, 'utf-8');
  • 读取本地文件
    src/skills.ts:120
    entries = await readdir(root, { withFileTypes: true });
  • 读取本地文件
    src/skills.ts:147
    subDirs = await readdir(skillsDir, { withFileTypes: true });
  • 读取本地文件
    src/skills.ts:161
    md = await readFile(skillPath, 'utf-8');
  • 写入剪贴板
    src/views/chat.ts:757
    await navigator.clipboard.writeText(promptText);
  • 读取本地文件
    version-bump.mjs:6
    let manifest = JSON.parse(readFileSync("manifest.json", "utf8"));
  • 写入本地文件
    version-bump.mjs:9
    writeFileSync("manifest.json", JSON.stringify(manifest, null, 2) + "\n");
  • 读取本地文件
    version-bump.mjs:14
    versions = JSON.parse(readFileSync("versions.json", "utf8"));
  • 写入本地文件
    version-bump.mjs:19
    writeFileSync("versions.json", JSON.stringify(versions, null, 2) + "\n");
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 直连本地CLI聊天
  • 流式回复
  • 工具调用与会话历史

非官方 Obsidian 插件:在笔记库内直连本地 WorkBuddy/CodeBuddy CLI 聊天,支持流式回复、思考过程、工具调用与会话历史。

README

由 DeepSeek 最新模型翻译生成
BuddyBridge 把 Obsidian 连接到本地 WorkBuddy / CodeBuddy 命令行,为你的仓库配一个 AI 聊天助手,支持多轮流式输出和工具调用。 ⚠️ 仅支持 Windows。 macOS / Linux 暂不支持。 需要 Obsidian 1.7.2+。 BuddyBridge 是非官方 Obsidian 插件,把仓库连接到本地 WorkBuddy / CodeBuddy 命令行,在侧边栏里当 AI 助手用。它实时流式输出回复,展示思考步骤和工具调用卡片,把当前笔记作为上下文注入,重启后还能恢复对话历史——笔记和聊天都留在 Obsidian 里。 环境要求 - Obsidian 1.7.2 或更高版本(桌面端)。 - Windows(macOS / Linux 暂不支持)。 - 一个能在本机独立登录的 CodeBuddy 命令行。 推荐做法:安装官方独立 npm 包 @tencent-ai/codebuddy-code(提供 codebuddy / cbc 命令),然后运行一次 codebuddy /login。
展开完整文档(README 剩余 1 节)
BuddyBridge

把 Obsidian 连接到本地 WorkBuddy / CodeBuddy 命令行,为你的仓库配一个 AI 聊天助手,支持多轮流式输出和工具调用。

⚠️ 仅支持 Windows。 macOS / Linux 暂不支持。
需要 Obsidian 1.7.2+。

BuddyBridge 是非官方 Obsidian 插件,把仓库连接到本地 WorkBuddy / CodeBuddy 命令行,在侧边栏里当 AI 助手用。它实时流式输出回复,展示思考步骤和工具调用卡片,把当前笔记作为上下文注入,重启后还能恢复对话历史——笔记和聊天都留在 Obsidian 里。

环境要求

- Obsidian 1.7.2 或更高版本(桌面端)。
- Windows(macOS / Linux 暂不支持)。
- 一个能在本机独立登录的 CodeBuddy 命令行。 推荐做法:安装官方独立 npm 包 @tencent-ai/codebuddy-code(提供 codebuddy / cbc 命令),然后运行一次 codebuddy /login。WorkBuddy 内置的命令行(resources\app.asar.unpacked\cli\bin\)凭证绑定在 WorkBuddy 桌面进程上,而且是精简版(lite-WB)构建,被 Obsidian 这类第三方宿主拉起时通常无法独立启动——请始终优先用独立 npm 命令行。

安装

1. 从最新发布下载 main.js、manifest.json 和 styles.css。
2. 把这三个文件复制到仓库内的 .obsidian/plugins/buddybridge/。
3. 重启 Obsidian。
4. 进入设置 → 第三方插件 → 关闭安全模式 → 启用 BuddyBridge。

首次配置

BuddyBridge 需要一个能独立登录的 CodeBuddy 命令行。插件检测到命令行不可用时,会在聊天面板顶部显示 「Configure CodeBuddy CLI」 横幅——点 Copy setup prompt,粘贴到 WorkBuddy 对话框里发送一次。WorkBuddy 会用自带的 Node 安装官方独立命令行(@tencent-ai/codebuddy-code),并引导你完成登录——你只需粘贴一条消息、授权一次。

想让聊天正常工作,始终用独立命令行。 WorkBuddy 通过 npm 安装它(@tencent-ai/codebuddy-code),然后你登录一次(codebuddy /login)。WorkBuddy 内置的命令行是精简版(lite-WB)构建,被 Obsidian 这类宿主拉起时无法独立启动,会报 Cannot find module '../dist/codebuddy' 或 Authentication required——这是最常见的报错原因。如果横幅不可用,手动安装:npm install -g @tencent-ai/codebuddy-code,再运行 codebuddy /login,然后把 codebuddy.cmd 的完整路径(不是它所在的文件夹)填进设置 → BuddyBridge → CodeBuddy path。

使用

1. 点击机器人侧边栏图标,或在命令面板运行 「BuddyBridge: Open chat panel」。
2. 右侧边栏会打开聊天面板。
3. 输入消息,按 Enter 发送。按 Shift + Enter 插入换行。
4. 用顶部的标签切换对话,或点击 + 新建对话。
5. 如需手动配置 CodeBuddy CLI 路径,打开 设置 → BuddyBridge。

功能

- Obsidian 侧边栏内的 AI 聊天面板,支持与本地助手多轮对话
- 实时流式响应,带思考块与工具调用卡片
- 思考块与工具调用卡片可折叠
- 助手消息支持 Markdown 渲染(代码、表格、列表、引用)
- 注入 Vault 感知的上下文(自动注入当前笔记路径)
- 感知当前笔记:每条消息都会附带当前笔记的路径
- 对话在 Obsidian 重启后仍保留
- 在 Windows 上自动发现 CodeBuddy / Node.js 路径
- 可在设置中配置 CLI 路径

故障排查

| 现象 | 原因 | 解决办法 |
| Cannot find codebuddy CLI | 自动检测失败 | 在插件设置里填写 CodeBuddy path,填 codebuddy.cmd 的完整路径(不是它所在的文件夹),或让 WorkBuddy 安装独立 CLI |
| Authentication required… /login | CLI 未登录(内置 CLI 常见此问题,其凭据绑定桌面应用) | 改用独立 CLI:让 WorkBuddy 安装 @tencent-ai/codebuddy-code,或运行 npm install -g @tencent-ai/codebuddy-code,再执行一次 codebuddy /login |
| Cannot find Node.js | 未配置 Node.js | 运行首次环境初始化提示词(见下方中文说明) |
| 卡在 "Thinking..." | 流式输出结束但没有文本块 | 已在 v1.0.11 修复 |

中文说明

将 Obsidian 连接到 WorkBuddy/CodeBuddy CLI,实现侧边栏 AI 聊天。

一个把 CodeBuddy / WorkBuddy 接入 Obsidian 的 AI 聊天插件:无需离开笔记,Vault 侧边栏内即可多轮问答、实时流式输出,自动显示思考过程与工具调用,并支持当前笔记上下文注入与会话历史恢复。

安装

1. 从 latest release 下载 main.js、manifest.json、styles.css。
2. 复制到 Vault 目录下的 .obsidian/plugins/buddybridge/。
3. 重启 Obsidian。
4. 进入 设置 → 第三方插件 → 关闭安全模式 → 开启 BuddyBridge。

使用方法

1. 点击左侧的 机器人图标,或从命令面板运行 "BuddyBridge: 打开聊天面板"。
2. 右侧会打开聊天面板。
3. 输入消息后按 Enter 发送;Shift + Enter 换行。
4. 顶部标签可切换对话,点击 + 新建对话。
5. 如需手动指定 CodeBuddy CLI 路径,进入 设置 → BuddyBridge。

前置条件

1. 已安装 Obsidian(≥ 1.7.2),Windows 系统
2. 已安装可独立登录的官方 CodeBuddy CLI:推荐使用 WorkBuddy 帮你在 Obsidian 里完成一次配置(复制引导条里的配置提示词给 WorkBuddy 执行,它会用自带 Node 安装 @tencent-ai/codebuddy-code 并引导你登录);或手动 npm install -g @tencent-ai/codebuddy-code,再执行一次 codebuddy /login 登录
3. WorkBuddy 桌面版(≥ 5.0.5)为来源与宿主:用户本就用 WorkBuddy 时,其自带的 node 可用来装独立 CLI。注意其内置 CLI(resources\app.asar.unpacked\cli\bin\)是 lite-WB 局部构建,凭据绑定桌面端、在 Obsidian 等第三方宿主中通常无法独立启动/认证——请始终使用独立 CLI,不要依赖内置 CLI

首次使用:环境初始化

BuddyBridge 需要一个可独立登录的 CodeBuddy CLI。插件检测到 CLI 不可用时,会在聊天面板顶部显示「配置 CodeBuddy CLI」引导条——点「复制配置提示词」→ 把提示词粘贴到 WorkBuddy 对话框执行一次即可。WorkBuddy 会用自带的 Node 安装官方独立 CLI(@tencent-ai/codebuddy-code),并引导你完成登录。你只需在 WorkBuddy 里粘一段话 + 授权一次。

提示词核心步骤(插件引导条会给出完整版,此处供自包含参考):

1. 用 WorkBuddy 自带的 Node(~/.workbuddy/binaries/node/versions//node.exe)确认 npm 可用;
2. npm install -g @tencent-ai/codebuddy-code 安装官方独立 CodeBuddy CLI;
3. 运行 codebuddy /login,引导用户用腾讯云账号完成一次登录(登录态落在 ~/.codebuddy);
4. (可选)给 Vault 配读写权限:插件设置里「一键授权」;
5. 把 codebuddy.cmd 的完整路径回报给用户/插件(通常 C:\Users\<你>\AppData\Roaming\npm\codebuddy.cmd)。

若你不想通过 WorkBuddy 引导,也可手动完成:npm install -g @tencent-ai/codebuddy-code → codebuddy /login(登录一次)→ 在插件设置 → CodeBuddy 路径里填 codebuddy.cmd 的完整文件路径(注意是 .cmd 文件本身,不是它所在的目录)。

完成后完全重启 Obsidian(系统托盘退出,不是只关窗口),BuddyBridge 即可正常使用。

功能

- Obsidian 侧边栏聊天面板,支持多轮对话
- 流式输出,实时显示文字
- 可折叠的思考过程与工具调用卡片
- Assistant 消息 Markdown 渲染(代码块、表格、列表、引用)
- 当前笔记感知:发送消息时自动注入当前打开笔记的路径
- 会话管理,重启后恢复对话历史
- CodeBuddy CLI 和 Node.js 路径自动发现
- 设置中可配置 CLI 路径

自动发现

插件启动时自动搜索以下位置:

| 搜索目标 | Windows 路径 |
| WorkBuddy 安装 | %LocalAppData%\Programs\WorkBuddy\...、%ProgramFiles%\WorkBuddy\...、C/D/E 盘全覆盖 |
| npm 全局安装 | %AppData%\npm\codebuddy.cmd、%ProgramFiles%\nodejs\... |
| 系统 PATH | 遍历 PATH 中每个目录查找 codebuddy.cmd / codebuddy.exe |
| WorkBuddy 自带 Node | ~/.workbuddy/binaries/node/versions// |
| 多盘符 Node | C:\Program Files\nodejs、D 盘、E 盘 |

注意:自动检测可能选中 WorkBuddy 内置 CLI,也可能选中 npm 全局的 codebuddy。前者凭据绑定桌面端、在 Obsidian 中通常无法独立认证(会报 Authentication required)。遇到时,请在设置中把 CLI 路径指向 npm 独立安装的 codebuddy(由 @tencent-ai/codebuddy-code 提供)。

故障排查

| 现象 | 原因 | 解决 |
| 找不到 codebuddy CLI | 自动检测未找到(如自定义安装路径) | 在插件设置中手动填写 codebuddy.cmd 的完整路径(非目录),或用 WorkBuddy 引导安装独立 CLI |
| Authentication required(提示 /login) | CLI 未登录(常见于用内置 CLI,其凭据绑定桌面端、无法在 Obsidian 独立认证) | 用独立 CLI:让 WorkBuddy 安装 @tencent-ai/codebuddy-code,或手动 npm install -g @tencent-ai/codebuddy-code,再执行一次 codebuddy /login |
| 找不到 Node.js 来运行 codebuddy | Node.js 未正确配置 | 完成上方的「环境初始化」 |
| 一直显示「思考中」 | 流式结束未清理占位元素 | 已在 v1.0.11 修复 |
| 重启后对话丢失 | chatView 未正确持有导致无法加载历史 | 已在 v1.0.11 修复 |

权限授权

插件需要 CodeBuddy 对 Vault 有读写权限才能正常工作。

推荐直接用插件自带的「一键授权」:Obsidian → 设置 → BuddyBridge →「文件访问授权」→「一键授权」。插件会把 Vault 路径写入 ~/.codebuddy/settings.json 的 trustedDirectories 与 permissions.allow(只补充、不覆盖现有配置)。

提示:以上「一键授权」配置的是独立 CodeBuddy CLI 的 ~/.codebuddy/settings.json。若你用 WorkBuddy 桌面版,需区分 .codebuddy(CodeBuddy CLI)与 .workbuddy(WorkBuddy 桌面版)两个不同配置文件——BuddyBridge 走的是 CodeBuddy CLI,必须配置 .codebuddy。
仅当按钮不可用时,可将 提示词-发给workbuddy让它给buddybridge授权.md 的完整内容发送给 WorkBuddy/CodeBuddy 执行。完成后完全退出 WorkBuddy/CodeBuddy(系统托盘右键退出),重新打开即可生效。

设置

设置页分为四组:

- 连接 — CodeBuddy 路径、可选 Node 路径、命令行超时(秒,默认 300)
- 上下文注入 — 注入当前笔记链接(默认开)、注入 Vault 上下文(默认关)
- 外观 — 主色调
- 管理 — 最大对话数、导出/导入设置(含聊天记录,带版本号 JSON)、重置为默认

| 设置项 | 说明 | 默认 |
| CodeBuddy 路径 | 命令行可执行文件路径(留空自动检测) | 自动 |
| Node 路径(可选) | 手动指定 node.exe(留空自动检测) | 自动 |
| 命令行超时时长(秒) | 请求超时后自动终止并提示 | 300 |
| 注入当前笔记链接 | 发送时附加 [当前笔记: 路径] | 开 |
| 注入 Vault 上下文 | 额外附加 [Vault: 路径] | 关 |
| 最大对话数 | 最多保留多少个对话 | 20 |
| 导出/导入设置 | 备份或迁移设置 + 聊天记录(带版本号 JSON) | — |
| 重置为默认 | 恢复默认设置(保留聊天记录,需确认) | — |

开发

npm run dev # 开发构建
npm run build # 生产构建
npm test # 运行测试

许可证

MIT
预览分享卡片长什么样 ↓ben4202121/buddybridge
分享 · DeepSeek Harness Hub
ben4202121/buddybridge

把 Obsidian 连接到本地 WorkBuddy / CodeBuddy 命令行,为你的仓库配一个 AI…

回到顶部