中文EN

dsh-plugin-weixin

notify已测通过npmMIT

微信(个人微信,iLink Bot API)通道:在微信里直接对话 DSH agent,支持图片、文件收发与语音转写。一个微信会话可挂多条 DSH 会话(/new、/list、/use 切换,切走不销毁),全部配置项都能在设置页里查看和修改。已上架 npm(dsh-plugin-weixin)。

下载量 / Downloads
10,533
依赖体积 / node_modules
8.43 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-plugin-weixin

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

<div align="center">

微信BOT · dsh-plugin-weixin

把你的个人微信,变成 DeepSeek Harness 的远程控制面。

在微信里说一句话,DSH Agent 在你自己的机器上开一个会话执行,把结果回给你 —— 文字、图片、文件、语音,双向都能走。

![npm version](https://www.npmjs.com/package/dsh-plugin-weixin)

![npm downloads](https://www.npmjs.com/package/dsh-plugin-weixin)

![CI](https://github.com/panqing0313/dsh-plugin-weixin/actions/workflows/ci.yml)

![node](package.json)

![license](LICENSE)

![DSH Market](https://dsh.market/)

简体中文 | [English](README.en.md)

<img src="assets/icon-128.png" width="88" alt="微信BOT 图标" />

</div>

<img src="assets/hero.png" alt="微信BOT:在微信里与 DSH Agent 对话" />

为什么是它

不用公网、不用服务器 · Agent 在你自己的机器上跑,微信只是入口。凭证以 0600 存在本机 ~/.dsh/weixin/,不上传任何第三方。

默认拒绝所有人 · allowedSenders 默认为空,等于谁都不能驱动你的 Agent;扫码后的第一条消息自动登记你本人,之后要加人再逐个放行。

双向都通 · 文字、图片、文件、语音(SILK → WAV → 本地 ASR)、视频抽帧、表情图;长回复自动分气泡,超长代码块改发文件。

多账号互不干扰 · 几个微信号可以同时接入,各有自己的长轮询、白名单与会话线;一个号登录、暂停或退出,不影响其他号。

不花模型也能用 · 命令、提醒、日报、/diag、/usage、/outbox 都由插件直接回答,不消耗模型对话。

看得见、查得到 · npm run doctor(13 项体检)、npm run onboard(上手清单)、聊天内 /diag、消息流水、统计页签、工具审计、备份与恢复。

30 秒上手

第 1 步 · 安装(三种任选其一)

npx dsh-plugin-weixin --profile desktop          # 不需要先 clone
node bin/install.mjs --profile desktop --pin     # 从源码安装并钉住版本

也可以在 DSH 的插件页(侧边栏 Plugins)填 dsh-plugin-weixin。装完重启 DSH 生效。

第 2 步 · 登录

打开「设置 → 插件 → 微信BOT」,点扫码登录微信,用手机微信扫卡片上的二维码(终端党也可以 npm run login)。扫码成功后不需要重载 DSH。

第 3 步 · 授权

allowedSenders 默认是空的,等于拒绝所有人。新账号的第一条消息的发信人会被自动登记并放行 —— 扫码时只知道 bot id,人的微信 id 要等第一条消息才出现。所以拿自己的微信发一句话,它就开始干活了;要加别人,在卡片的「微信账号 → Allowlist」里填。

装完想确认一遍:

npm run onboard     # 上手清单:还差什么、下一步做什么(退出码 0 = 能用了)
npm run doctor      # 13 项体检:账号 / 白名单 / 实例锁 / 积压 / 日志 / 宿主版本
npm run doctor -- --fix     # 体检 + 修它能自己修的(目录、权限、陈旧临时文件、坏掉的 JSON 挪到一边)

它是什么,不是什么

是 · 个人微信 ↔ DSH 的双向通道插件。微信侧走官方 iLink Bot API(ilinkai.weixin.qq.com),传输层是腾讯官方开源插件 @tencent-weixin/openclaw-weixin(MIT)的 vendor 副本;DSH 侧直接绑定 agents 服务。

不是 · 不是微信官方产品,也不是企业微信 / 公众号方案。用的是个人微信的机器人绑定通道,账号风控与可用性由微信侧决定。

不旁路权限 · 真实的文件修改与命令执行仍由 DSH 自己的权限层与确认流程决定,插件不绕过、不代批。

目前做不到 · 出站语音气泡(实测服务端接受但不投递,voiceOutbound 默认关);原生贴纸 / 表情包(微信没给 bot 这类消息类型);原生图像理解(入站图片以本地路径交给 Agent,能否读懂取决于你的模型与工具链);发送视频(需要视频编码)。

功能地图

按「你要做什么」分组,每组直接跳到对应章节。

接入与账号 —— [安装](#安装) | [登录](#登录) | [授权(重要)](#授权重要) | [多账号管理](#多账号管理) | [配置](#配置)

会话控制 —— [会话线](#会话一个微信会话可以用多条-dsh-会话) | [在设置页管理](#在设置页管理) | [会话列表里怎么认出微信会话](#会话列表里怎么认出微信会话)

消息与媒体 —— [出站附件](#出站附件插件发给你的图片视频文件) | [入站媒体](#入站媒体微信发来的图片文件语音视频) | [出站语音](#出站语音voiceoutbound) | [语音识别](#语音识别asr) | [表情图片](#表情图片stickerenabled) | [视频抽帧](#语音与视频voiceoutbound--videoframes) | [Markdown 处理](#markdown-处理)

主动与时间 —— [定时提醒](#定时提醒remind-与设置卡) | [定时主动消息](#定时主动消息subscribe) | [主动开口](#主动开口proactiveenabled) | [日报与记忆核对](#日报与记忆核对digestenabled--memoryreviewenabled) | [免打扰时段](#免打扰时段quiethours)

记忆与个性化 —— [个性化与记忆](#个性化与记忆mode--remember--forget--memory) | [知识库](#知识库把你交给它的资料变成答案knowledgeenabled) | [陪聊节奏与生活状态](#陪聊节奏与生活状态humanpacing--lifestate) | [记忆改口](#记忆改口remember-旧--新--自动纠错) | [本地回忆检索](#本地回忆检索recall) | [关系曲线与联系人](#关系曲线与群里的人affinity--contacts)

群聊 —— [群聊](#群聊groupchatenabled--groupreplywhen--groupsharememory)

运维与可观测 —— [命令速查](#会话一个微信会话可以用多条-dsh-会话) | [统计页签](#统计页签stats) | [账单页签](#账单页签usage) | [消息流水](#消息流水messagejournal) | [指标与长稳](#指标与长稳metricsexport--npm-run-metrics--npm-run-soak) | [备份与恢复](#备份与恢复backupenabled) | [工具审计](#工具审计toolaudit) | [危险工具提醒](#危险工具提醒toolnotices) | [兼容性](#兼容性)

集成与进阶 —— [模型路由](#模型路由chatprovider--sideprovider--memoryprovider) | [记忆模型](#记忆模型结构化档案--事件--人物小传--独立模型) | [语言](#语言locale) | [ASR 桥](#仓库自带一个桥binasr-bridgepy) | [模型目录可以自定义](#模型目录可以自定义) | [模板包](#模板包npm-run-pack--packexport--packimport) | [预演模式](#预演模式dryrun)

完整目录 —— [亮点](#亮点) · [当前状态](#当前状态) · [目录结构](#目录结构) · [安装](#安装) · [登录](#登录) · [授权(重要)](#授权重要) · [配置](#配置) · [会话](#会话一个微信会话可以用多条-dsh-会话) · [出站附件](#出站附件插件发给你的图片视频文件) · [入站媒体](#入站媒体微信发来的图片文件语音视频) · [定时提醒](#定时提醒remind-与设置卡) · [定时主动消息](#定时主动消息subscribe) · [消息流水](#消息流水messagejournal) · [本地回忆检索](#本地回忆检索recall) · [即时总结与导出](#即时总结与导出summary--export) · [免打扰时段](#免打扰时段quiethours) · [统计页签](#统计页签stats) · [个性化与记忆](#个性化与记忆mode--remember--forget--memory) · [陪聊节奏与生活状态](#陪聊节奏与生活状态humanpacing--lifestate) · [记忆改口](#记忆改口remember-旧--新--自动纠错) · [语言](#语言locale) · [模型路由](#模型路由chatprovider--sideprovider--memoryprovider) · [记忆模型](#记忆模型结构化档案--事件--人物小传--独立模型) · [表情图片](#表情图片stickerenabled) · [主动开口](#主动开口proactiveenabled) · [语音与视频](#语音与视频voiceoutbound--videoframes) · [富内容](#富内容richcontent--codefilethreshold) · [危险工具提醒](#危险工具提醒toolnotices) · [群聊](#群聊groupchatenabled--groupreplywhen--groupsharememory) · [工具审计](#工具审计toolaudit) · [语音识别](#语音识别asr) · [Markdown 处理](#markdown-处理) · [兼容性](#兼容性) · [开发](#开发) · [发布](#发布) · [文档](#文档)

亮点

每个版本改了什么在 [CHANGELOG.md](CHANGELOG.md);这一节只讲现在能做什么。

它现在能做什么

  • 多微信账号同时接入 —— 不止一个微信号。设置卡里逐个扫码添加(或 node bin/login.js --account work),每个账号独立收发、独立长轮询,登录/退出/重登一个账号不影响其他账号;扫码完成后即时生效,不需要重启 DSH。
  • 账号级白名单 —— 每个账号可以覆盖全局的 allowedSenders / allowedChats(设置卡里直接改,保存即重挂该账号);留空则回退全局配置。谁能让你的 Agent 干活,按账号说了算。
  • 会话按账号隔离 —— 每个账号的微信会话有独立的 DSH 会话线(/new、/list、/use),互不串上下文;新会话标题带 备注名: 前缀并镜像成宿主侧栏会话名,多账号一眼分得清;不需要的会话线随时删。
  • 一键暂停 —— 某个账号先静默:Pause 立即停掉它的入站轮询(其余账号照常收发),Resume 无缝恢复,都不用重启。
  • 语音开箱即用 —— 入站语音 SILK → WAV 本地转码,ASR 桥识别成文字交给 Agent(热调用约 300ms),识别不了自动降级存文件;音频附件也能转成语音气泡(voiceOutbound,默认关——实测 iLink 服务端会接受机器人语音 ret=0 但不投递,打开前请读[出站语音](#出站语音voiceoutbound)一节)。
  • 管理都在设置卡,也在左侧栏 —— 账号、会话、全部

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:58,最后更新 2026-11-05

链接

GitHub · Homepage · npm

同类插件