在飞书会话里直接指挥智能体执行任务并回传文件
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/yinsang0910-star/dsh-feishu.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 13 处,展示前 9 条)
- 发起网络请求packages/core/src/client.ts:110
return fetch(url, { - 发起网络请求packages/core/src/client.ts:292
await this.request('PATCH', `/im/v1/messages/${encodeURIComponent(messageId)}`, { - 发起网络请求packages/core/src/client.ts:299
await this.request('DELETE', `/im/v1/messages/${encodeURIComponent(messageId)}`); - 发起网络请求packages/core/src/client.ts:322
await this.request('POST', '/im/v1/pins', { body: { message_id: messageId } }); - 发起网络请求packages/core/src/client.ts:327
await this.request('DELETE', `/im/v1/pins/${encodeURIComponent(messageId)}`); - 发起网络请求packages/core/src/client.ts:352
await this.request('PATCH', `/im/v1/chats/${encodeURIComponent(chatId)}`, { body }); - 读取密钥环境变量packages/gateway/src/index.ts:56
const gwToken = (process.env.FEISHU_GATEWAY_TOKEN ?? '').trim() || undefined; - 读取密钥环境变量packages/mcp/src/gateway-client.ts:33
return (process.env.FEISHU_GATEWAY_TOKEN ?? '').trim(); - 发起网络请求packages/mcp/src/gateway-client.ts:47
const res = await fetch(`${gatewayUrl()}${path}`, {
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
把飞书变成 DeepSeek Harness 的操作界面:36 个工具的 MCP server + 长连接机器人 + 卡片网关。真发文件、读会话上下文、停下来等人拍板、进度卡片原地刷新,不需要公网 IP。
README
由 DeepSeek 最新模型翻译生成dsh-feishu
让智能体真正住进飞书。
MCP server · 长连接机器人 · 卡片网关 · DSH 设置页 · MIT
它是什么
飞书会话就是智能体的操作台。在手机上发一句话,它在你的机器上执行,把文件、卡片、 多维表格发回会话——而不是回你一段「建议执行以下命令」。
不需要公网 IP、内网穿透、域名或证书:机器人主动向飞书发起 WebSocket 长连接,不开放入站端口。
它由三个角色组成,各自负责一段:
| 角色 | 职责 |
| feishu-bot | 常驻长连接。身份校验、会话管理、任务队列、进度卡、审批按钮。自身不执行任务 |
| agent | 实际执行方。
展开完整文档(README 剩余 1 节)
dsh-feishu 让智能体真正住进飞书。 MCP server · 长连接机器人 · 卡片网关 · DSH 设置页 · MIT 它是什么 飞书会话就是智能体的操作台。在手机上发一句话,它在你的机器上执行,把文件、卡片、 多维表格发回会话——而不是回你一段「建议执行以下命令」。 不需要公网 IP、内网穿透、域名或证书:机器人主动向飞书发起 WebSocket 长连接,不开放入站端口。 它由三个角色组成,各自负责一段: | 角色 | 职责 | | feishu-bot | 常驻长连接。身份校验、会话管理、任务队列、进度卡、审批按钮。自身不执行任务 | | agent | 实际执行方。dsh --profile headless 调用模型,36 个 MCP 工具是它的操作面 | | gateway | 只做一件事:把卡片按钮的点击精确投递给正在等待回答的那次 feishu_ask | 它解决什么问题 | 你说 | 它做 | | 把上周的纳米技术报告发我 | 在工作区找到 3 份 .docx,上传并发送到会话 | | 建一张读书清单的多维表格 | 建表 → 建 4 个字段 → 写入第一条记录,返回链接 | | 跑一下这个季度的文献综述,做完汇报 | 排进队列,进度在同一张卡片里刷新,聊天中只占一个气泡 | | 清一下 /home/agent/work/old | 先发审批卡,确认后才执行 | | 我在高铁上,帮我看下服务器还活着吗 | 返回 CPU / 内存 / 磁盘 / 服务状态 | | 发一张试卷照片,说「帮我批改」 | 图片经 read_image 真正打开,逐题给出对错 | | 换个最会想的模型,慢慢算 | /模型 点按钮换模型,/思考 切 reasoningEffort(含 auto 自动挡),切换前先真跑一次确认可用 | | 群里三个人同时发话 | 并行执行(默认上限 3 路),同一个人的任务仍按顺序;回复 @ 到人,群静音也收得到 | | 选中一张旧图说「你重新做这个」 | 先取回被引用的消息,图片重新下载落盘,模型再看一遍 | 机器人另外承担:白名单认领、每人一份独立会话记忆、任务队列、超时兜底、每日汇报、危险动作拦截。 图片与文件消息的处理见 BOT-ATTACHMENTS.md,群内免 @ 见 BOT-GROUP-MODE.md,并发与引用回溯见 BOT-RUNTIME.md。 安装 前置条件:一个飞书自建应用、一台能运行 DeepSeek Harness 的机器、Node 22+。 应用需要开通的 scope 见权限。 方式一:设置页向导(推荐) 装好插件后,DSH 设置面板左栏会多出「飞书连接」,内含四步向导(步骤条 1 建应用 → 2 填凭据 → 3 选会话 → 4 自检,完成一步点亮一项): 1. 建应用 —— 直达开放平台的链接,附 11 项权限清单,可一键复制 2. 填凭据 —— App ID / Secret,保存时先校验再落盘,凭据错误不会写坏文件 3. 选会话 —— 「扫描我的会话」列出机器人所在会话,无需手抄 32 位 oc_ 串 4. 自检 —— 九项逐个真调接口:凭据文件、MCP 挂载、应用凭据、机器人身份、会话列表、目标会话、读聊天记录、上传文件、云空间 自检每项下方一行小字是判定依据:凭据文件末四位、token 剩余秒数、机器人应用名、会话名、 file_key 前几位。九项全绿时底部提示「工具已经挂进 profile,重启 DSH 之后 mcp__feishu__ 就能用了」。 失败项会给出该开通的 scope 与跳转链接,并支持「一次开通全部缺失权限」。 自检不往会话里发任何内容:读历史只读 1 条,上传只传 20 字节且不发送。 方式二:命令行安装 pnpm install && pnpm build node scripts/install.mjs \ --app-id cli_xxxxxxxx \ --app-secret xxxxxxxx \ --chat-id oc_xxxxxxxx 安装器执行四步,每步可单独重跑: 1. 校验凭据 —— 实际换取一次 tenant_access_token 并列出会话,凭据错误立即报出 2. 写密钥文件 —— ~/.config/dsh/feishu.env,权限 0600 3. 安装 MCP 启动包装 —— 生成 dsh-feishu-mcp 脚本(stdio 子进程的环境变量会被清空,密钥需由包装脚本自行 source) 4. 修改配置档 —— 幂等地向 cordis.patch.yml 写入带哨兵的托管块 重启 DSH 后,让模型报告工具清单: echo '你有哪些 mcp__feishu__ 工具?只列名字' | dsh --profile headless --json - --uninstall 只回滚第 3、4 步,不改动密钥文件。可选参数:--profile <名字>(默认 headless)、 --dir <安装目录>、--skip-check。 关于建应用的两点 扫码建应用:第 2 步的「扫码创建」走飞书官方 RFC 8628 设备授权流程。 二维码内容是 open.feishu.cn/page/launcher?user_code=...,手机确认后应用自动创建, App ID 与 Secret 直接写入本机 feishu.env——浏览器全程不接触 secret,也不需要手抄任何一串。 权限仍需手动开通:应用创建后按第 1 步的清单勾选(提供深链与一键复制)。 飞书没有允许第三方代开权限的通道,这一步无法省略。 只挂 MCP,不要机器人 MCP server 已打成自包含单文件(SDK 与 core 都打包在内),不需要 pnpm install,也不从 npm 安装。 Claude Desktop:从 Releases 下载 dsh-feishu-mcp-<版本>.mcpb,双击安装,在配置面板填入 App ID 与 App Secret。 (同一产物也在镜像仓库 dsh-feishu-mcp 的 Releases 中。) 其他 stdio 客户端: npx github:yinsang0910-star/dsh-feishu-mcp 或从 Releases 下载 dsh-feishu-mcp-<版本>.mjs,node dsh-feishu-mcp.mjs 即可运行(1.5 MB,含全部依赖)。 Docker(镜像里不含任何凭据,运行时注入): docker build -t dsh-feishu-mcp . docker run --rm -i -e FEISHU_APP_ID=cli_xxx -e FEISHU_APP_SECRET=xxx dsh-feishu-mcp 未配置凭据时进程仍会启动并完成握手,tools/list 正常返回 36 个工具,只有真正调用工具才返回「飞书凭据未配置」——目录站与客户端的自检因此不会看到「server 崩了」。 提供 FEISHU_APP_ID / FEISHU_APP_SECRET 即可运行。挂进 DSH 的方式是编辑 ~/.dsh/profiles/<profile>/cordis.patch.yml: - insert: - id: mcp-feishu name: '@deepseek-ai/dsh-mcp-client' config: transport: stdio serverName: feishu command: npx args: ['-y', 'github:yinsang0910-star/dsh-feishu-mcp'] feishu_ask 最多阻塞 600s,工具超时必须比它大 toolCallTimeoutMs: 660000 env: FEISHU_APP_ID: 'cli_xxx' FEISHU_APP_SECRET: 'xxx' FEISHU_DEFAULT_CHAT_ID: 'oc_xxx' serverName: feishu 决定工具前缀(mcp__feishu__),改动它前缀随之改变。 改代码时改为运行本仓库产物:command: node + args: ['/绝对路径/packages/mcp/dist/server.js']。 镜像仓库 yinsang0910-star/dsh-feishu-mcp 由 scripts/publish-mcp-repo.ps1 单向同步,请勿在该仓库直接改代码。 装完之后 建议同时装记忆插件 本项目只保证会话内连续(同一人 + 同一工作目录)。跨会话、跨项目的长期记忆建议交给 dsh-mnemon(作者 @Grivn,MIT)。 不装的症状很具体:今天告诉它「我叫什么、别用术语」,明天开新会话它一样不知道。装了之后这些写进 ~/.mnemon/runtime/,每次进上下文。 需要注意:机器人在飞书里跑的是 headless profile,桌面端装过的记忆插件对它无效—— headless 默认只挂了 base + headless 两个 bundle。一条命令补齐: bash services/agent-workspace/install-mnemon.sh # 幂等,已装则只做检查 原理、验证方法、三个坑与回滚见 MNEMON.md。 先看一眼指令 /help 返回一张可点击的卡片:切换模型、切换 reasoningEffort、查看状态、管理工作区、开关群内是否需要 @。完整指令见 BOT-COMMANDS.md。 权限 在飞书开放平台「权限管理」开通以下 scope,修改后需要发布版本才生效: | scope | 用于 | | im:message:send_as_bot | 所有发送类工具 | | im:resource | 文件 / 图片的上传下载 | | im:chat | 列会话、列成员 | | im:message.group_msg | 读群聊历史(feishu_recent / feishu_ask) | | im:message.p2p_msg:readonly | 读单聊历史 | | drive:drive | 云空间 | | docx:document · docx:document:create | 读写云文档 | | wiki:wiki:readonly | 知识库 | | bitable:app | 多维表格 | | contact:user.id:readonly | 邮箱 / 手机 → open_id | 有两项不属于 scope 配置: - 机器人必须先被拉进群,feishu_chats 只列它已加入的会话。 - 卡片要支持原地更新,发卡时必须带 config.update_multi = true(本项目自带模板默认已带)。 36 个工具 工具名在客户端里带前缀,形如 mcp__feishu__feishu_send_text。参数细节见 TOOL-CONTRACT.md,逐个工具的说明与危险等级见 MCP-TOOLS.md。 | 分组 | 工具 | | 身份 / 卡片 | feishu_whoami 查机器人身份与可达会话 · feishu_send_info_card 发「标签+值」信息卡 | | 发消息 | feishu_send_text 纯文本 · feishu_send_card 任意卡片 JSON · feishu_update_card 原地刷新 · feishu_reply 引用回复 | | 文件 | feishu_send_file 本地文件(30MB,可批量 + 说明文字)· feishu_send_image 图片(10MB)· feishu_download 把消息附件落到本地 | | 上下文 | feishu_recent 读最近消息(时间正序、默认滤掉机器人自己)· feishu_ask 发问并等人回答 | | 会话与成员 | feishu_chats 列机器人所在会话 · feishu_members 列成员 | | 群与消息管理 | feishu_recall 撤回消息(删群里的旧文件也走它)· feishu_forward 转发 · feishu_pin 置顶 · feishu_chat_update 改群名与权限 · feishu_chat_create 建群 · feishu_chat_dissolve 解散群 · feishu_chat_files 列群文件 · feishu_file_delete 删云空间文件 | | 多维表格 | feishu_bitable_tables · feishu_bitable_fields(带类型码与写入形态)· feishu_bitable_records(单元格渲染成人话)· feishu_bitable_add · feishu_bitable_update · feishu_bitable_delete | | 表格 / 文档 / 云空间 / 知识库 | feishu_sheet_create · feishu_sheet_read(按 A1 区间读值)· feishu_drive_list · feishu_doc_read · feishu_doc_blocks(按块读结构)· feishu_doc_create · feishu_wiki_spaces · feishu_wiki_node · feishu_user_lookup | 飞书没有「群文件列表」这个端点:群里的文件是挂在消息上的附件,feishu_chat_files 的实现是翻最近的群消息再筛出 file / media / audio 类型。删除同理——删的是那条消息,所以走 feishu_recall。 另有卡片模板(progressCard / resultCard / askCard / chatListCard)与统一错误翻译: scope 未开通时,FeishuApiError.missingScopes 把需要开通的项拼进错误文本,模型可据此提示。 设计取舍 为什么不是 @larksuiteoapi/lark-mcp 官方 lark-mcp 覆盖的是广度:把飞书 OpenAPI 按元数据整体暴露给模型。它的定位没问题,但「把 IM 当作 agent 界面」最要紧的四项能力它不具备: | 缺口 | lark-mcp | 本项目 | | 发送本地文件 | 没有 im.v1.file.create 这条链路,本地文件无法进入会话 | feishu_send_file / feishu_send_image:路径 → 上传 → 发消息 | | 会话上下文 | 只有「列消息」的原始接口 | feishu_recent:拍平成 [时间] 发送人:内容,模型可直接阅读 | | 阻塞式提问 | 标准 MCP 是请求-响应模型,没有「等待人回答」 | feishu_ask:发带按钮的卡片,阻塞直到点击,把答案带回 | | 卡片原地更新 | 只能发卡,不能改卡,进度只能刷屏 | feishu_update_card:聊天里只留一个气泡,反复刷新 | 需求是「用脚本批量调用飞书 OpenAPI」时,lark-mcp 更合适;需求是「让 agent 在飞书里像同事一样干活」时,缺的正是上面四项。 架构 架构 packages/ ├── core/ @yisang0910/core API 客户端 · 类型 · 卡片模板(零第三方 HTTP 依赖) ├── mcp/ @yisang0910/mcp 36 个工具的 MCP server ├── gateway/ @yisang0910/gateway 卡片问答网关(HTTP + 可选长连接) └── dsh-plugin/ @yisang0910/plugin DSH 设置页(在 Web UI 里填凭据、测连接) services/ ├── feishu-bot/ 飞书长连接机器人 + 一键部署脚本 └── agent-workspace/ 工作区清理器 + 记忆插件安装脚本 docs/ 架构 · 契约 · 工具清单 · 各模块说明 改动代码前请遵守两条硬约束: 1. stdout 只能输出 MCP 的 JSON-RPC。任何 console.log 都会破坏协议,日志一律走 stderr。 2. 工具 handler 必须整体 try/catch,异常翻译成 fail(...) 返回,不得向上抛出。 状态 版本 0.1.0(Release v0.1.0), 实验阶段:接口与工具名仍可能变化,暂不保证向后兼容。 - 194 个单测(core 117 + gateway 77),CI 执行 typecheck + test + build + 打包冒烟 - 下载:Release 提供 dsh-feishu-mcp-0.1.0.mcpb(Claude Desktop 双击安装)与 dsh-feishu-mcp-0.1.0.mjs(自包含单文件,node 直接运行),附 SHA256SUMS.txt - 暂未发布到 npm:npm 的 2FA 政策阻塞了首次发布,原因与出路见 NPM-PUBLISH.md。插件与 MCP 均可直接从 GitHub 安装(dsh plugin … add github:… / npx github:…),不依赖 npm - 已知限制:feishu_ask 轮询存在延迟与配额成本、单文件上限 30 MB、无多实例锁—— 详见 ARCHITECTURE.md 文档 按阅读顺序排列: | 文档 | 讲什么 | | ARCHITECTURE.md | 分层、关键取舍、已知限制 | | TOOL-CONTRACT.md | 写工具前必读的实现契约 | | MCP-TOOLS.md | 36 个工具逐个说明、危险等级、还缺什么 | | MNEMON.md | 推荐搭配的记忆插件:为什么、怎么装、怎么验 | | DEPLOY.md | 部署到服务器 | | GATEWAY.md | 网关协议与部署 | | BOT-INTEGRATION.md | 机器人与网关怎么对接 | | BOT-COMMANDS.md | 全部指令 + 换模型/换思考强度怎么落地 | | BOT-RUNTIME.md | 并发、回复 @ 到人、引用旧消息回溯 | | BOT-ATTACHMENTS.md | 图片/文件消息怎么收(read_image 真看图) | | BOT-GROUP-MODE.md | 群聊不用 @ 也能用(/要@ /免@) | | AGENT-WORKSPACE.md | 工作区归档规则与清理分级 | | NPM-PUBLISH.md | 发布到 npm 的阻塞点与出路 | 另有两份仓库级说明:CONTRIBUTING.md(环境、目录、提交前要跑什么)与 SECURITY.md(凭据放在哪、怎么报告问题、设计上的边界)。 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
yinsang0910-star/dsh-feishu
在飞书会话里直接指挥智能体执行任务并回传文件
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,792已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,110已汉化DeepSeek 客户端
70.9
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,031已汉化DSH
70.7
这是你的仓库?认领条目