Claude Code Feishu Bridge
将 VS Code 中 Claude Code 的终端交互,实时推送到飞书群——离开工位也能掌控 AI 编程进度。

功能特性
- 实时推送:Claude Code 终端输出以交互卡片形式推送到飞书群,支持流式更新和长输出附件
- 双向交互:直接在飞书群发消息,写入 Claude Code 终端;支持引用回复精准路由
- 审批卡片:Tool Approval 请求推送到飞书,一键批准/拒绝
- 多终端多项目:同时监控多个 VS Code 窗口、多个终端、多个项目
- 三档推送模式:OFF(关闭)/ AUTO(智能切换)/ HYBRID(始终推送)
- 智能通道切换:PresenceRouter 5 状态机,根据用户在 PC/飞书端的活跃状态自动调整推送策略
- 全局仪表盘:飞书端持久卡片,30s 自动刷新,展示所有会话、模式和状态
- 飞书端控制面板:
/mode、/list、/dashboard 等指令,无需打开 VS Code 即可管理
- 敏感内容过滤:6 条内置规则(OpenAI / GitHub / GitLab / AWS / Bearer / 密码字段)+ 用户自定义正则,推送前自动脱敏
- 安全白名单:身份校验 + 操作去重 + 输入验证 + 危险命令二次确认
- 凭证加密:App Secret 通过 VS Code SecretStorage API 加密存储
快速上手
方式 A:配置向导(推荐)
- 在 VS Code 扩展市场搜索 Claude Code Feishu Bridge 并安装
- 打开命令面板(
Cmd+Shift+P / Ctrl+Shift+P)
- 运行命令:
Feishu Bridge: Setup Wizard
- 按向导提示依次填写飞书应用凭证(App ID、App Secret、Chat ID)
- 配置完成,打开含 Claude Code 的终端即可开始推送
方式 B:手动配置
参见仓库中的完整指南:docs/guides/quick-start.md
前置要求
| 要求 |
版本 / 说明 |
| VS Code |
>= 1.93 |
| Node.js |
>= 22.5(Relay Server 运行环境) |
| 飞书自建应用 |
需要 App ID 和 App Secret |
| 飞书群 Chat ID |
消息推送目标群 |
| 飞书权限 |
im:message、im:message.group_msg、im:chat.readonly 等(详见 docs/guides/quick-start.md) |
主要命令
在命令面板(Cmd+Shift+P)中输入 Feishu Bridge 可快速筛选所有命令:
| 命令 |
说明 |
快捷键 |
Feishu Bridge: Setup Wizard |
首次配置或修改飞书凭证 |
— |
Feishu Bridge: Toggle Push Mode |
循环切换推送模式(OFF → AUTO → HYBRID) |
Ctrl+Alt+F / Cmd+Alt+F |
Feishu Bridge: Enable Push |
开启推送 |
— |
Feishu Bridge: Disable Push |
关闭推送 |
— |
Feishu Bridge: Show Status |
打开输出面板排查问题 |
— |
Feishu Bridge: Rename Terminal |
为当前终端设置飞书显示名称 |
— |
Feishu Bridge: Toggle Project Push |
关闭 / 开启当前项目的推送 |
— |
飞书端操作
在已配置的飞书群中,授权用户可以直接与 Claude Code 终端交互:
- 直接发消息 → 写入最近活跃的 Claude Code 终端(适合单终端场景)
- 引用回复某条卡片 → 写入该卡片对应的终端(多终端精准路由)
- 发送
/rename <名称> → 将对应终端重命名为指定名称
- 发送
/mode off|auto|hybrid → 切换推送模式
- 发送
/list → 查看所有活跃会话
- 发送
/dashboard → 刷新全局仪表盘卡片
配置项
在 VS Code 设置(settings.json)中可调整以下配置:
| 配置项 |
类型 |
默认值 |
说明 |
feishuBridge.enabled |
boolean |
true |
全局启用 / 禁用 |
feishuBridge.appId |
string |
"" |
飞书 App ID |
feishuBridge.chatId |
string |
"" |
飞书群 Chat ID |
feishuBridge.mode |
string |
"hybrid" |
推送模式:off / auto / hybrid |
feishuBridge.allowedUserIds |
string[] |
[] |
允许写入终端的飞书用户 open_id 白名单 |
feishuBridge.filterNonClaude |
boolean |
true |
仅推送运行 Claude Code 的终端输出 |
feishuBridge.debounceInterval |
number |
500 |
终端输出聚合防抖间隔(毫秒) |
feishuBridge.sensitivePatterns |
string[] |
[] |
推送前脱敏的正则规则列表 |
feishuBridge.confirmBeforeSend |
boolean |
true |
发送敏感交互前弹出确认对话框 |
feishuBridge.relayPort |
number |
36800 |
本地 Relay Server 端口 |
feishuBridge.maxCardSize |
number |
10240 |
飞书卡片最大字节数 |
feishuBridge.streamingUpdateInterval |
number |
5000 |
流式更新推送间隔(毫秒) |
完整配置列表参见扩展设置页或 docs/guides/quick-start.md。
常见问题
飞书群没有收到任何卡片
运行 Feishu Bridge: Show Status 打开输出面板,检查 Relay Server 是否成功启动,以及飞书 API 请求是否返回错误。常见原因:App ID / App Secret 填写有误,或飞书群机器人未加入目标群。
在飞书发消息,但终端没有反应
确认以下两点:① 当前终端已运行 Claude Code;② 发送消息的飞书账号的 open_id 已加入 feishuBridge.allowedUserIds 白名单。
多窗口下消息路由到了错误的终端
直接在飞书群中引用回复目标终端对应的卡片,即可精准路由到该终端,无需额外配置。
Node.js 版本不兼容
Relay Server 使用 node:sqlite(Node.js 22.5+ 内置模块),请确保本地 Node.js 版本 >= 22.5。运行 node --version 验证。
隐私与安全
- 传输安全:所有数据通过飞书开放平台的 HTTPS API 传输,本地 Relay Server 仅监听
localhost
- 凭证加密:App Secret 通过 VS Code
SecretStorage API 加密存储,不写入明文配置文件
- 白名单控制:
feishuBridge.allowedUserIds 为空时,任何飞书消息均不会写入终端
- 内容脱敏:6 条内置规则自动过滤 API Key / Token / 密码等敏感信息,支持自定义正则扩展
- 操作去重:ActionDeduplicator 防止飞书消息重复执行
- 危险命令保护:
rm -rf、DROP TABLE 等危险指令触发二次确认
开发者快速上手
环境准备
# 克隆仓库
git clone https://gitee.com/shinetw/remote-claude-vs.git
cd Remote-Claude-VSplugin
# 安装根依赖
npm install
# 安装 relay-server 依赖
cd packages/relay-server && npm install
# 复制并填写本地凭证
cp .env.example .env.local # 填写飞书 App ID / App Secret / Chat ID
构建与运行
# 一键全量构建
npm run build:all
# 或分别构建
cd packages/relay-server && npm run build # relay-server 开发构建
cd packages/extension && npm run build # extension 构建
# 按 F5 在 Extension Development Host 中启动扩展
运行测试
# 在项目根目录运行所有单元测试
npx vitest run
项目结构
Remote-Claude-VSplugin/
├── packages/
│ ├── extension/ # VS Code 扩展主体
│ └── relay-server/ # 本地 Relay Server(守护进程)
├── shared/ # 共享类型与协议定义
├── docs/ # 文档(PRD、ADR、开发计划、指南)
└── .env.local # 本地凭证(gitignored)
许可证
MIT License
由 Claude Code 辅助开发