dsh-im-connect
IntegrationsMichengAI/dsh-im-connect
Connects DeepSeek Harness to IM platforms like WeChat, DingTalk, Feishu, QQ, and Telegram, enabling chat-based task management.
- deepseek
- deepseek-harness
- dsh
- dsh-plugin
- dsh-plugins
README
DSH IM Connect
把飞书、钉钉、企业微信、微信、QQ、Telegram 接到本机 DeepSeek Harness
English · 更新日志 · Apache-2.0
DSH IM Connect 是社区维护的 DeepSeek Harness(DSH)插件,并非 DeepSeek AI 官方产品。
功能概览
- 在「设置 → IM助理」里连接钉钉、飞书、Lark、微信、企业微信、QQ、Telegram。
- 每个 IM 聊天对应一条独立 DSH 会话,出现在工作区「频道」,不会混进网页「任务」。
- 手机里直接下任务、看回复、批准工具;模型和权限跟随本机 DSH。
- 支持扫码绑定或手动填凭据;敏感字段写入 DSH
ctx.credentials,不会进channels.json。 - 可把一句话复制到 DSH、Codex 或 WorkBuddy,让对方代装到本机 DSH。
- 群聊不用绑定,@ 即可对话;私聊中,平台能返回身份的扫码用户自动放行,其他人要在设置页批准。
- 扫码成功后配置弹窗自动关闭,设置页保持打开。
谁可以驱动助手
入站消息先看发送者,再处理命令、工具审批和注入。
| 场景 | 行为 |
|---|---|
| 群聊未 @ 当前机器人 | 忽略,不回复、不进待批准;只 @ 其他成员也不触发 |
| 群聊已准确 @ 当前机器人 | 不用绑定,任何人都可以下任务 |
| 私聊 · 扫码用户 | 微信 / 飞书 / Lark / QQ 扫码者自动进白名单,可直接对话 |
| 私聊 · 其他人 | 进入设置页待批准;不批准就不能驱动助手 |
| 私聊 · 扫码不返回身份 | 钉钉 / 企微的快捷绑定只返回机器人凭据,扫码者仍需在设置页批准 |
| 私聊 · 手动凭据 | Telegram,以及手动填写凭据的钉钉 / 企微 / QQ,所有私聊都要先批准 |
| 私聊缺少 userId | 拒绝 |
| 工具审批 | 仅白名单用户在私聊回复「批准 / 拒绝」有效;群聊里回不算 |
微信是扫码渠道且只支持私聊,所以连上后用同一个微信号即可直接用。换一个微信号私聊,会出现在设置页待批准。
📡 支持的渠道
| 渠道 | 状态 | 接入方式 | 需要 |
|---|---|---|---|
| 🔔 钉钉 | ✅ 可用 | 扫码,或 Client ID / Secret | 钉钉开放平台机器人;回复优先走 AI Card |
| 🐦 飞书 | ✅ 可用 | 仅扫码,自动创建机器人 | 飞书账号 |
| 🌐 Lark | ✅ 可用 | 仅扫码 | Lark 国际版账号 |
| 💬 微信 | ✅ 可用* | 官方 iLink 扫码 | 建议专用小号;仅私聊 |
| 🏢 企业微信 | ✅ 可用 | 扫码(推荐),或 Bot ID / Secret | 企业微信智能机器人 |
| ✅ 可用 | 扫码,或 AppID / AppSecret | QQ 开放平台机器人,不是个人号 | |
| ✈️ Telegram | ✅ 可用 | 仅填 Bot Token | @BotFather;同一 Bot 不要同时开 Webhook |
✅ 可用 = 文字收发可用 | *微信 = 只走腾讯官方 iLink,不做逆向个人号 | 群聊都需要 @ 机器人才回复
界面预览
在「设置 → IM助理」连接渠道。未连接显示「配置」,已连接显示开关和状态:

工作区左侧「任务 / 频道」分列。IM 会话只出现在「频道」:

企业微信等渠道支持扫码快捷绑定:

连上后,可在各 IM 里直接驱动本机助手:
DSH 产品生态
本产品既可以独立安装,也可以随桌面端或 Web 套件一起使用。它们共享同一个 DSH 核心,但面向不同的使用方式:
| 产品 | 与本产品的关系 |
|---|---|
| DeepSeek Harness | 本产品的运行宿主,提供模型、会话、工具和插件系统 |
| DSH Codex Desktop | 下载安装即用的桌面产品,已内置本产品和其他 5 个功能产品 |
| DSH Codex Suite | 面向已有 DSH Web 环境的一键套件,会安装本产品和其他 5 个功能产品 |
| 6 个功能产品 | Codex UI · IM Connect · Automation · Skills Manager · Archive Manager · Agency Agents |
前置条件
- 已可正常运行 DeepSeek Harness Web,且可在 PowerShell 中使用
dsh。 - 以下示例使用
webprofile;请替换为实际目标 profile。 - 从源码安装或二次开发需要 Node.js 22+;仅从 npm 安装无需在任意目录执行
npm install。 - 安装后必须重启
dsh web,并在浏览器硬刷新,才能看到「设置 → IM助理」。
安装
dsh plugin add 会转发到 profile 目录里的 pnpm add。不写版本、不指定官方源时,本机镜像和最短发布间隔可能让你停在旧版。
交给其他 Agent 一句话安装
本插件运行在 DeepSeek Harness Web 里。把下面其中一句复制到 DSH、Codex 或 WorkBuddy,让它代你安装到本机 web profile。
从 npm 安装:
请把 DSH 插件 @michengai/dsh-im-connect 最新版装进本机 web profile,使用官方 npm 源执行:dsh plugin --profile web add @michengai/dsh-im-connect@latest --registry=https://registry.npmjs.org/。装完执行 dsh --profile web --dump-config,确认已挂载 im-connect,并提醒我重启 DSH Web 后硬刷新浏览器,打开「设置 → IM助理」。
从源码安装:
请从 https://github.com/MichengAI/dsh-im-connect 安装 DSH 插件:克隆仓库,执行 npm install 和 npm test,再在该目录执行 dsh plugin --profile web add .。不要只复制 lib。然后执行 dsh --profile web --dump-config,确认已挂载 im-connect,并提醒我重启 DSH Web 后硬刷新浏览器,打开「设置 → IM助理」。
| 产品 | 怎么用 |
|---|---|
| DSH | 把上面其中一句发给当前会话。 |
| Codex | 把上面其中一句发给 Codex,让它在本机执行安装。 |
| WorkBuddy | 把上面其中一句发给 WorkBuddy;源码安装也可同时粘贴仓库地址 https://github.com/MichengAI/dsh-im-connect。 |
Codex 和 WorkBuddy 只负责代装;装好后仍要打开 DSH Web 使用「设置 → IM助理」。
也可以自己执行同一条 npm 命令:
dsh plugin --profile web add @michengai/dsh-im-connect@latest --registry=https://registry.npmjs.org/
未把 dsh 装进 PATH 时,把开头的 dsh 换成 npx --yes @deepseek-ai/dsh。
从官方 npm 安装最新版
在任意 PowerShell 目录执行:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
dsh plugin --profile web add @michengai/dsh-im-connect@latest --registry=https://registry.npmjs.org/
dsh --profile web --dump-config
需要钉死某一版时,把 @latest 换成具体版本,例如 @0.1.1。
配置输出中应包含 im-connect。安装后重启 DSH Web 并在浏览器硬刷新。不要手工复制客户端文件,dsh plugin add 会同时应用 cordis.patch.yml。
从源码安装
适用于调试或使用未发布改动。克隆后的本地路径就是插件安装路径:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
Set-Location D:\Repository\deepseek-harness-plugin
git clone https://github.com/MichengAI/dsh-im-connect.git
Set-Location .\dsh-im-connect
npm install
npm test
dsh plugin --profile web add .
dsh --profile web --dump-config
完成后重启 DSH Web 并硬刷新浏览器。dsh plugin ... add . 会读取当前目录的包信息和 cordis.patch.yml;不要改为直接复制 lib 目录。
使用
打开「设置 → IM助理」,先选工作区、权限和模型,再连接渠道。详细步骤见 使用说明。
| 目标 | 操作 | 说明 |
|---|---|---|
| 连接渠道 | 未连接卡片点「配置」,扫码或填写凭据 | 飞书 / Lark / 微信仅扫码;Telegram 仅填 Bot Token;成功后配置弹窗自动关闭 |
| 暂停接收 | 关闭已连接卡片上的开关 | 凭据保留,只是暂时不收消息 |
| 在 IM 里下任务 | 微信 / 飞书 / Lark / QQ 扫码用户可直接私聊;钉钉 / 企微扫码者和其他用户需先批准。群聊只需 @ | 每个聊天对应一条独立频道会话 |
| 分段输入 | 结尾加 .. 表示还有后续,!! 表示立即提交 | 默认约 5 秒合并窗口 |
| 新开会话 | 发送 /new 或 /clear | 只影响当前 IM 聊天,不影响网页任务 |
| 查看状态 / 帮助 | 发送 /status 或 /help | 只作用于当前频道会话 |
| 批准陌生人私聊 | 打开「设置 → IM助理」,在待批准列表点「批准」或「拒绝」 | 只影响私聊准入,不影响群聊 |
| 批准工具 | 在私聊回复「批准」或「拒绝」 | 也接受 yes / no / allow / reject;群聊无效 |
| 在网页里回看 | 打开工作区「频道」页签 | IM 会话不会出现在「任务」里 |
钉钉回复优先走官方 AI Card 流式卡片;创建失败则回退普通文本。Telegram 同一 Bot 不要同时开 Webhook。
权限与安全边界
| 项 | 当前行为 |
|---|---|
| 用户准入 | 群聊不用绑定,只需 @。私聊默认拒绝:微信 / 飞书 / Lark / QQ 扫码者自动放行;钉钉 / 企微扫码不返回用户身份,仍需设置页批准 |
| 管理接口 | 强制校验本机回环来源及 Host(localhost / 127.0.0.1 / [::1]);写接口要求 JSON 和插件客户端请求头 |
| 敏感字段 | 包括微信 token 在内均优先写入 DSH ctx.credentials;没有该服务时落到 %DSH_HOME%\dsh-im-connect\secrets.json(明文,仅限当前用户,禁止同步或分享) |
| 渠道状态 | channels.json 只保存启用状态和凭据引用,不保存明文 Secret |
| 浏览器回包 | 不返回 token、secret、App Secret 或内部异常详情 |
| 微信协议 | 只走腾讯官方 iLink,不使用逆向个人微信协议 |
| 工具批准 | 仅私聊且发送者已在白名单时生效,不能跨会话、也不能在群里批准 |
不要把 DSH Web 暴露到非本机地址。权限预设与 Chat 使用相同的 Host sandbox-policy;danger-full-access 不套沙箱。
二次开发
本仓库用 src 开发,构建到 lib:
- src\index.ts:Host 入口、配置和生命周期。
- src\manager.ts:渠道启停、本机 API、凭据落盘。
- src\engine:会话路由、斜杠命令、审批、分片和回推。
- src\channels:钉钉、飞书、Lark、微信、企业微信、QQ、Telegram 适配器。
client.js:设置页和工作区频道侧栏。tests\*.test.mjs:路由、扫码、凭据、QQ、投递和侧栏测试。
修改后运行测试并以本地目录安装验证:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
npm test
dsh plugin --profile web add .
修改渠道或会话逻辑时,必须保持:引擎不写死平台名、渠道不创建 agent、网页任务与 IM 频道分列。
验证
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
npm test
prepublishOnly 会在发布前自动执行测试。
项目文档与许可证
项目状态、使用边界、技术架构和迭代记录从文档交接入口开始。详细操作说明见 使用说明。默认安全姿态见 SECURITY.md。
本项目采用 Apache License 2.0。