前言¶
做 DSH 开发时,很多操作最终都会落到消息交互上:查看会话、切换工作区、处理工具审批、发送文件、查看连接状态。如果这些动作只发生在 Web 端,开发时的上下文切换会比较频繁。
bwhite55/dsh-wechat-pro 是一个 DeepSeek Harness(DSH)进程内微信 ClawBot 通道插件,目标是把 DSH 接到微信里,让你在微信中继续与真实 DSH 会话交互。它的定位可以概括为:把 DSH 变成微信里的一只「龙虾」。
这是什么¶
dsh-wechat-pro 由 bwhite55 维护,许可证为 MIT,版本号为 0.1.0。
它是一个 DSH 进程内微信 ClawBot 通道插件,核心能力包括:
- 微信扫码连接,凭证
24h自动续连并到期提醒。 - 微信里的会话与 Web 共享真实 DSH 会话,可跨端续接,属于 Codex 式附着。
- 在微信内切换工作区、切换工作路径、切换模型和思考强度。
- 在微信内执行 harness 原生命令,例如
/plan、/permission、/compact、/goal、/feedback、/export。 - 把高风险工具调用审批转发到微信,回复
/yes允许、/no拒绝。 - 实时推送思考、工具调用等过程事件,最终答复长文自动分片。
- 支持微信与电脑之间的文件收发。
- agent 可通过
weixin_send工具向微信推送消息。
运行环境要求 Node >=22,peerDependencies 要求 @deepseek-ai/cordis ^4.0.1 等 DSH 相关包。
核心功能¶
扫码连接与续连¶
插件通过微信 ClawBot 配对连接。连接后,凭证可自动续连,并有到期提醒。
如果 dsh web 在隐藏窗口中运行,终端里看不到二维码,可以通过状态接口获取二维码链接:
http://127.0.0.1:3080/api/dsh-wechat-pro/status
响应里的 qrLink 是当前登录二维码链接。若需要强制重新扫码,可以调用:
POST /api/dsh-wechat-pro/connect
会话共享¶
微信里新建或切换的会话,是真实 DSH 会话,不是单独维护的一套影子会话。
常用操作包括:
/new <名字>:当前工作区内新建会话并切换。/attach <序号|会话ID>:附着 Web 已有会话,实现跨端续接。
这样可以先在一端建立上下文,再在微信端继续同一会话。
工作区切换¶
微信内支持两类工作区操作:
/workspace:在注册工作区间切换,通常通过回复数字选择。/workdir <路径>:切换到任意工作路径,并自动注册为工作区。
这适合在不同项目目录之间来回切,而不用重启或切换 Web 页面。
模型与思考强度¶
微信内支持按会话切换模型和思考强度:
/model:切换模型,下一轮生效。/thinking:切换思考强度,下一轮生效。
输出等级也可以用 /level [级别] 切换,可选 minimal、normal、verbose。
harness 原生命令¶
微信内可以直接执行 harness 原生命令,例如:
/plan
/permission
/compact
/goal
/feedback
/export
这些命令不是额外封装的快捷方式,而是直接在 DSH 会话中执行。
工具审批转发微信¶
当 DSH 触发高风险工具调用时,审批提示会转发到微信。
在微信中回复:
/yes
表示允许。
回复:
/no
表示拒绝。
如果同时存在多个待审批项,可以回复:
允许 <4位码>
来精确选择某一条审批。
流式输出与长文分片¶
思考、工具调用等过程事件可以实时推送到微信。最终答复如果较长,会自动分片。
微信单条消息约有 2048 字符限制,插件的 replyMaxChars 默认为 3800,超出后会分片发送。
长答复还有一个降级策略:maxReplyChunks 默认为 8。如果分片数超过预算,会降级为「首片 + 完整内容落盘为文件发送」,避免完整内容丢失。
媒体收发¶
电脑侧可以向微信发送文件:
/send <路径> [说明]
微信侧收到的图片、文件、视频、语音,会自动下载、解密并落盘。
此外,agent 可以使用 weixin_send 工具,在任务过程中随时向微信推送消息。
安装与启用¶
先安装插件,再启动 Web:
dsh plugin --profile web add github:bwhite55/dsh-wechat-pro
dsh web
启动后,在微信中添加 ClawBot/龙虾,扫二维码配对,就可以开始对话。
如果在隐藏窗口中运行 dsh web,可以通过状态接口拿到二维码:
http://127.0.0.1:3080/api/dsh-wechat-pro/status
也可以强制重新扫码:
POST /api/dsh-wechat-pro/connect
典型用法¶
下面这些指令来自插件说明,可以在微信中直接使用。
查看帮助、状态和连接剩余时间:
/help
/status
/time
切换工作区:
/workspace
按提示回复数字,即可选择目标工作区。
切换任意工作路径:
/workdir <路径>
新建会话并切换:
/new <名字>
附着 Web 已有会话:
/attach <序号|会话ID>
切换模型:
/model
切换思考强度:
/thinking
切换输出等级:
/level minimal
/level normal
/level verbose
发送电脑文件到微信:
/send <路径> [说明]
处理高风险审批:
/yes
/no
允许 <4位码>
执行 harness 原生命令:
/plan
/permission
/compact
/goal
/feedback
/export
配置项¶
插件提供配置项,也支持 DSH_WXBOT_* 环境变量。
常见配置项包括:
autoConnectallowFromdataDirbaseUrlreplyMaxCharsstreamLevelmirrorWebTurnsreplyTimeoutMsannounceToAgent
其中几个比较关键的点:
allowFrom:用于控制允许接入的微信用户。建议只放行自己的微信号。replyMaxChars:默认3800。超出后会自动分片。mirrorWebTurns:默认只推送微信发起的回合;如果设置为true,Web 发起的回合也会推送到微信。streamLevel:可配置为minimal、normal、verbose。微信内也可以用/level覆盖。资料中对默认值存在不一致表述,这里不确认默认值;如果更关注发送额度,建议选择minimal。
发送限制与额度风险¶
腾讯 iLink 对单条入站消息的回复发送有额度限制。
如果过程消息发送过多,尤其是 normal 或 verbose 下每个工具调用都推送一条,可能触发:
sendMessage ret=-2 prepare failed
后续发送可能会被拒。因此,若不确定额度情况,优先选择 minimal,只接收最终答复与错误信息。
发送失败时,关键消息会自动重试一次,并记录到:
dataDir/logs/wechat-pro.log
数据与安全¶
使用前建议明确本地会保存哪些数据:
- 凭证文件
weixin-auth.json含 bot token,等于以该微信身份收发消息的凭据,不要外传。 - 联系人注册表、媒体、日志保存在
dataDir对应目录。 - 发送失败日志位于
dataDir/logs/wechat-pro.log。 - 控制路由
/api/dsh-wechat-pro/*仅监听回环地址,LAN 暴露会被拒绝。
插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
建议保持 DSH 自身权限为 workspace-write,并用 allowFrom 只放行自己的微信号。
本地测试¶
插件支持 mock iLink 本地测试和自动化测试,包括通道冒烟、harness 集成、真实模型 e2e。
先安装依赖并构建:
pnpm install
pnpm run build
可以运行 mock iLink:
node tests/test-mock-ilink.mjs --port 8899
也可以运行通道冒烟测试:
node tests/channel-smoke.mjs
如果运行真实模型 e2e 测试,需要设置 DEEPSEEK_API_KEY,并会消耗少量配额。
结尾¶
dsh-wechat-pro 的价值在于把 DSH 的会话、工作区、模型切换、工具审批、文件收发等能力接到微信里,同时保持与 Web 端共享真实 DSH 会话。它适合需要在消息入口中持续使用 DSH 的开发者。
目录页:https://www.skillhub.cn/plugins/bwhite55/dsh-wechat-pro
GitHub:https://github.com/bwhite55/dsh-wechat-pro