背景

用户在 VSCode CodeBuddy 插件中运行 AI 编码助手,但存在痛点:

  • 只能通过消息唤醒,无法自动触发
  • 需要定时唤醒 + 读取 session 记录
  • 需要前端展示 MCP 操作和代码编辑结果
  • 项目太费 token,需要使用 CodeBuddy 提供的免费 LLM 接口

调研结果

VSCode 官方方案

Chat Participant API

  • VSCode 提供完整的 Chat Participant API
  • 可以创建自定义聊天参与者
  • 支持编程方式控制聊天交互
  • 限制:仍需要一个"触发器"来启动流程,无法解决根本问题

开源替代方案

项目 Stars 自动化能力 特点
Goose 31.7k ⭐⭐⭐⭐⭐ CLI+Desktop双模式,支持任何LLM,MCP兼容,有前端UI
Kilocode 16.1k ⭐⭐⭐⭐⭐ --auto模式,CI/CD友好,完全自动化
LibreChat 34.2k ⭐⭐⭐ 自托管ChatGPT克隆
Deer-flow 22.8k ⭐⭐⭐⭐ 字节跳动SuperAgent框架

Goose 深入分析

架构优势:

  • 双模式:Desktop UI(可视化)+ CLI(自动化)
  • Session 持久化:所有对话自动保存在 ~/.config/goose/sessions/
  • Headless Mode:支持 GOOSE_MODE=auto 完全自动化
  • MCP 兼容:完整支持 MCP servers
  • Recipe 系统:可定义可重用的自动化工作流

自动化示例:

1
2
3
4
5
6
# 定时任务
0 * * * * goose run --no-session -t "读取最近的 session,继续之前的工作"

# Headless 自动化
export GOOSE_MODE=auto
goose run -t "自动完成代码审查并生成报告"

约束条件

用户明确要求使用 CodeBuddy,原因:

  • 提供免费的 LLM 接口
  • 项目太费 token,成本考虑

CodeBuddy 深入分析

产品形态

形态 说明
VSCode 插件 主流使用方式,需消息唤醒
JetBrains 插件 支持 IDEA 等 IDE
CodeBuddy IDE 独立 IDE,基于 VSCode 构建
微信开发者工具 小程序开发

核心能力

1. MCP Server 支持

  • 完整兼容 MCP 协议
  • 配置格式与 Cursor、Claude Desktop 兼容
  • MCP 市场一键安装
  • 支持自定义 MCP Server 配置

2. Craft 智能体

  • Plan 模式:自动拆解任务,制定计划
  • 自动运行:启用后自动执行任务
  • 自动修改文件:自动生成和改写代码
  • 版本化管理:可回退到任意检查点
  • Diff 视图:分栏展示代码变更

3. 历史对话管理

  • 支持导出历史对话记录
  • 支持编辑历史对话
  • 支持删除历史对话

4. 模型支持

  • 腾讯混元(默认)
  • DeepSeek-V3
  • 支持自定义模型接入

自动化可能性分析

方案 可行性 说明
VSCode 扩展开发 需要研究 CodeBuddy 是否暴露 API
模拟用户输入 ⚠️ 使用 AppleScript/AutoHotkey 模拟快捷键
读取 Session 文件 需要找到存储位置和格式
外部前端展示 可以读取导出的对话记录
CodeBuddy IDE 独立 IDE 可能有更多自动化入口

关键发现

  1. Craft 模式已具备自主执行能力

    • 自动运行 + 自动修改文件 = 接近自动化
    • 仍需用户触发初始输入
  2. 历史对话可导出

    • 为外部前端展示提供了数据来源
    • 可以构建独立的可视化界面
  3. MCP 兼容

    • 你现有的 MCP 工具(playwright、memory)可以直接使用
    • 配置格式标准化

技术路线建议

方案一:定时触发 + Craft 自动化

1
cron job → AppleScript 模拟快捷键 → Craft 自动执行
  • 使用 macOS 的 cron 或 launchd
  • AppleScript 模拟 ⌘ + I 打开 Craft
  • 自动输入预设的任务

方案二:外部前端 + Session 导出

1
CodeBuddy 导出对话 → 外部 Web 应用 → 可视化展示
  • 读取导出的 JSON/Markdown 对话记录
  • 构建独立的前端界面
  • 支持 MCP 操作和代码编辑的 diff 展示

方案三:混合方案

1
Goose CLI (自动化框架) + CodeBuddy API (如果可用)
  • 需要进一步调研 CodeBuddy 是否提供 API

VSCode 自动化 Hack 方案 🎯

方案一:VSCode 原生 runCommands(v1.77+)⭐ 最推荐

重大发现:VSCode v1.77+ 原生支持多命令执行,无需任何扩展!

使用方法

1
2
3
4
5
6
7
8
9
10
11
// keybindings.json
{
"key": "cmd+shift+a",
"command": "runCommands",
"args": {
"commands": [
"workbench.action.terminal.new",
{ "command": "workbench.action.terminal.sendSequence", "args": { "text": "echo hello\n" } }
]
}
}

外部触发

1
2
3
# AppleScript 模拟快捷键
osascript -e 'tell application "Visual Studio Code" to activate'
osascript -e 'tell application "System Events" to keystroke "a" using {command down, shift down}'

方案二:multi-command 扩展(最流行)

扩展市场https://marketplace.visualstudio.com/items?itemName=ryuta46.multi-command

  • 安装量:174,206
  • 评分:4.9/5

配置示例

1
2
3
4
5
6
7
8
9
10
// settings.json
"multiCommand.commands": [
{
"command": "multiCommand.triggerCodeBuddy",
"sequence": [
"workbench.action.terminal.new",
{ "command": "workbench.action.terminal.sendSequence", "args": { "text": "codebuddy continue\n" } }
]
}
]

方案三:macro-commander(支持 JavaScript)

扩展市场https://marketplace.visualstudio.com/items?itemName=jeff-hykin.macro-commander

  • 安装量:9,965
  • 评分:4.8/5

配置示例

1
2
3
4
5
6
7
8
9
10
11
12
// settings.json
"macros": {
"smartAuto": [
{ "javascript": "sharedMacroInfo.task = await window.showInputBox({title: '任务'})" },
"workbench.action.terminal.new",
{
"injections": [{ "replace": "$task", "withResultOf": "sharedMacroInfo.task" }],
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "echo $task\n" }
}
]
}

方案对比

方案 安装量 评分 特点
VSCode 原生 runCommands - - ⭐ 无需扩展,v1.77+ 内置
multi-command 174,206 4.9/5 最流行,简单易用
macro-commander 9,965 4.8/5 支持 JavaScript、shell 命令
vscode-cli-bridge - AI Agent 专用,TCP 控制

推荐:简单需求用原生 runCommands,复杂需求用 macro-commander。

方案四:vscode-cli-bridge(AI Agent 专用)

专为 AI Agent 设计的 VSCode CLI 控制工具

核心架构:

1
Terminal → vscode CLI → TCP (port 9485) → ClarityOS Bridge → VSCode API

安装:

1
2
3
4
5
# CLI 工具
npm install -g @yemreak/vscode-cli

# VSCode 扩展
code --install-extension yemreak.clarityos-bridge

关键命令:

命令 功能
vscode eval "code" 在 VSCode 上下文执行 JavaScript
vscode status 获取系统状态(终端、编辑器、工作区)
vscode diagnostics 获取所有诊断信息
vscode output [lines] 读取输出面板日志
vscode subscribe <url> 订阅事件(webhook)
vscode rename <old> <new> 跨项目重命名符号

示例:

1
2
3
4
5
6
7
8
9
10
11
# 获取当前活动文件
vscode eval "return vscode.window.activeTextEditor?.document.fileName"

# 执行带日志的代码
vscode eval "console.log('test'); return 'done'"

# 获取诊断信息
vscode diagnostics

# 订阅事件
vscode subscribe http://localhost:3000/webhook

特性:

  • TCP server on port 9485
  • JSON-RPC protocol
  • Full VSCode API access
  • Webview manager
  • Config registry (Hammerspoon-like)
  • Event broadcasting (webhooks)
  • Terminal event tracking

应用到 CodeBuddy

这个方案可以直接用于 CodeBuddy:

1
2
3
4
5
6
7
8
9
# 1. 安装扩展和 CLI
code --install-extension yemreak.clarityos-bridge
npm install -g @yemreak/vscode-cli

# 2. 启动 Bridge Server(VSCode 命令面板)
# "ClarityOS: Start Bridge Server"

# 3. 定时任务触发 CodeBuddy
cron job → vscode eval "触发 CodeBuddy"

关键发现:

  • 可以通过 vscode eval 直接执行 VSCode API
  • 可以访问 Chat Participant API 控制聊天
  • Webhook 订阅可以实现事件驱动
  • 完美解决"只能通过消息唤醒"的问题!

相关链接