DeepSeek Harness plugin

dsh-wxauto-plugin

WeChat automation for DSH: push task progress to WeChat, listen for messages with keyword auto-reply, and a WeChat ↔ DSH two-way bridge controllable from the settings page, built on wxauto4.

Jump to install

Source facts

Repository
br1nosense/dsh-wxauto-plugin
Latest update
Aug 18, 2026
Category
Notifications & Integrations
GitHub stars
1

Install

Start with a prompt that asks an agent to read the source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to read the page and repository first.

Do not install anything yet. Read this DeepSeek Harness plugin and explain what it does, which files, networks, or credentials it can access, and how to install and remove it.

Plugin page: https://deepseekplugins.org/plugins/br1nosense/dsh-wxauto-plugin
GitHub: https://github.com/br1nosense/dsh-wxauto-plugin
Plugin: dsh-wxauto-plugin
Author: br1nosense
Install command: dsh plugin --profile web add github:br1nosense/dsh-wxauto-plugin

Do not run the install command until I confirm.

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

dsh-wxauto-plugin — DSH 微信汇报与监听插件

基于 wxauto4(Python 免费版,支持微信 4.1.x 客户端)的 DSH 技能插件。

核心功能 1. 任务进度微信推送:DSH 任务进行/完成后,向指定微信聊天窗口发送任务进度信息(文本或文件)。 2. 微信消息监听:监听指定聊天的微信消息,新消息写入 JSONL 日志供 agent 读取,并支持关键词自动回复。 3. 微信⇄DSH 双向桥(反向操作 DSH):在微信里发命令或普通消息即可切换对话、新建对话、驱动 DSH 跑任务, 并收到 DSH 的进度截图(会话状态渲染 PNG)与完成汇报。

安装(从 GitHub)

# 1. 克隆仓库
git clone https://github.com/br1nosense/dsh-wxauto-plugin.git
cd dsh-wxauto-plugin

# 2. 安装 Python 依赖(wxauto4 免费版 + websocket-client:桥把 DSH 提问转发到微信需要它)
py -3 -m pip install wxauto4 websocket-client

# 3. 一键安装为 DSH 插件(注册到默认 web profile)
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

# 4. 重启 dsh web 使插件生效

> - 要求:Windows 10/11 + 微信 4.1.x 客户端(已登录)+ Python 3.9–3.12。 > - install.ps1 会同时注册技能目录与设置页卡片;若 dsh 装在非默认位置, > apiproxy 暴露 wxauto 命名空间一步会打印警告(不影响插件主体功能,可手动补)。 > - 卸载:dsh plugin --profile web rm @dsh-user/dsh-wxauto 后重启 dsh web。

常见问题:安装插件后 dsh 启动失败(peerDependencies 解析)

症状:安装本插件(bundle)后重启 dsh,web 启动报错 / 起不来。

原因:本插件把 @deepseek-ai/schemastery(以及 @deepseek-ai/cordis@deepseek-ai/dsh-settings) 声明为 peerDependencies,但插件目录(clone 下来的仓库)下没有 node_modules。Node ESM 会从插件 所在目录逐级向上查找 node_modules,却找不到 DSH 自身嵌套目录里的这几个包(dsh 安装目录通常 不在该查找路径上)。

修复(一次性,本地环境级):在插件工作区根目录(即插件目录的父目录,如把插件 clone 到 C:\code\AI\DSH\dsh-wxauto-plugin,则根目录是 C:\code\AI\DSH)的 node_modules\@deepseek-ai\ 下 创建 3 个目录联接(Junction),指向 DSH 自带的同名包:

指向
schemastery<dsh 安装目录>\node_modules\@deepseek-ai\schemastery(v3.18.1)
cordis<dsh 安装目录>\node_modules\@deepseek-ai\cordis
dsh-settings<dsh 安装目录>\node_modules\@deepseek-ai\dsh-settings

例如本机 dsh 位于 C:\Users\<你>\AppData\Roaming\nvm\v24.19.0\node_modules\@deepseek-ai\dsh

$dsh = 'C:\Users\<你>\AppData\Roaming\nvm\v24.19.0\node_modules\@deepseek-ai\dsh\node_modules\@deepseek-ai'
$dst = 'C:\code\AI\DSH\node_modules\@deepseek-ai'
New-Item -ItemType Directory -Force -Path $dst | Out-Null
foreach ($p in 'schemastery','cordis','dsh-settings') {
  New-Item -ItemType Junction -Path (Join-Path $dst $p) -Target (Join-Path $dsh $p)
}

> 该修复是本机环境级配置,创建在 node_modules 下,不应提交到仓库;dsh 升级或换机后路径变化 > 需重建(建议把上面脚本存成 fix-peer-deps.ps1,换环境后重跑)。

环境要求

要求
系统Windows 10/11
微信4.1.x 客户端(C:\Program Files\Tencent\Weixin\Weixin.exe),已登录
Python3.9–3.12(wxauto4 免费版要求)
依赖pip install wxauto4 websocket-client(wxauto4 拉取 comtypes/pywin32/pillow/psutil 等;websocket-client 用于把 DSH 提问转发到微信)

已验证组合:微信客户端 4.1.8.107 + wxauto4 41.1.2 + Python 3.12.6。

本地安装(等价于 install.ps1)

# 1. 安装 Python 依赖
py -3 -m pip install wxauto4 websocket-client

# 2. 安装为 DSH 插件(bundle,注册到 web profile)
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

# 3. 重启 dsh web 使插件生效

插件(bundle)说明

本包是标准 DSH profile bundle:

  • package.json 声明 dsh.bundle.patch: ./cordis.patch.yml,经 dsh plugin --profile web add <dir> 安装后自动加入 profile 的 dsh.profile.bundles 层栈。
  • cordis.patch.yml 挂载 wxauto 插件行(inject skills + settings 服务)。
  • lib/index.js 在运行时把 dsh-wxauto 技能注册进 ctx.skillsresourceBase 指向本包 skills/dsh-wxauto 目录),注册 wxauto 设置命名空间(配置落在 ~/.dsh/settings.yamlwxauto: 段),并提供 ctx.wxauto 服务(双向桥开关 bridgeEnabled 实时起停 wx_bridge.py、桥状态、配置镜像 data/dsh_settings.json)。
  • lib/client.js设置页侧边栏注册独立的「微信自动化」Tab(位于「换肤与宠物」下方,含双向桥/监听开关与聊天配置)。
  • install.ps1 还会给 apiproxy 的 WEB_SETTINGS_NAMESPACES 幂等加入 wxauto(dsh 升级覆盖后需重跑)。

双向桥开关wxauto.bridgeEnabled(设置页「微信自动化」Tab 或 settings.yaml)。开启=自动拉起桥(占用本机微信窗口,期间勿手动操作微信);关闭=自动停止。监听同理有 listenEnabled

旧方式(仅技能目录,不装 bundle)可用 install.ps1 -Junction。已装过 junction 时,插件生效后技能改由插件运行时注册,旧 junction 可删除(install.ps1 会自动清理)。

手工安装(等价于 install.ps1)

dsh plugin --profile web add <仓库目录>
dsh --profile web --dump-config   # 验证应出现 id: wxauto 的行

首次使用要改的默认配置

  • 插件默认把汇报/监听/控制聊天指向「文件传输助手」(skills/dsh-wxauto/config.json)。
  • 新会话工作目录(cwd)缺省为用户主目录;要改成工作区,在 ~/.dsh/settings.yamlwxauto: 段加 cwd: D:\你的\工作区
  • 启用双向桥:设置页「微信自动化」Tab 打开总开关(滑块),或 settings.yaml 设 wxauto.enabled: true(会占用本机微信窗口)。

快速开始

# 0) 预检
powershell.exe -NoProfile -ExecutionPolicy Bypass -File skills\dsh-wxauto\wrappers\wx-test.ps1

# 1) 列出会话,确认聊天名
... wx-sessions.ps1

# 2) 向文件传输助手发一条测试
... wx-send.ps1 -Who "文件传输助手" -Msg "任务已完成 ✅"

# 3) 单次监听检查(需先打开设置里的 listenEnabled,或加 -Force)
... wx-listen.ps1 -Who "文件传输助手" -Once -Force -Json

# 4) 后台持续监听 1 小时(DSH 后台任务)
... wx-listen.ps1 -Who "文件传输助手" -Timeout 3600 -Force

目录结构

dsh-wxauto-plugin/
├── package.json            # DSH bundle 声明(dsh.bundle.patch -> cordis.patch.yml)
├── cordis.patch.yml        # 挂载 wxauto 插件行(inject skills)
├── lib/index.js            # 插件入口:ctx.skills.register 注册技能 + ctx.wxauto 服务
├── lib/types/index.d.ts
├── README.md
├── install.ps1             # 一键安装为 DSH 插件(-Junction 为旧方式回退)
└── skills/dsh-wxauto/
    ├── SKILL.md            # 技能说明(agent 据此调用)
    ├── config.json         # 配置(target_chats / listen_chats / bridge_chats / dsh_base…)
    ├── scripts/            # Python 实现(wx_* / dsh_api / dsh_card / dsh_ops / wx_bridge)
    ├── wrappers/           # PowerShell 封装(wx-* / dsh-*)
    └── data/               # 运行时:listen.jsonl / bridge_state.json / shots/

命令一览

命令作用
wx-test.ps1环境预检(Python/wxauto4/微信进程/登录)
wx-sessions.ps1列出会话(确认目标聊天名)
wx-send.ps1发送进度/完成信息(文本/文件,多目标,@config
wx-read.ps1读取某聊天最近 N 条消息
wx-listen.ps1监听(轮询,JSONL 落盘 + 关键词自动回复;-Once 单次)
wx-bridge.ps1微信⇄DSH 双向桥(控制聊天驱动 DSH,任务完成推结果+进度截图)
dsh-list.ps1 / dsh-new.ps1 / dsh-switch.ps1会话列表 / 新建 / 切换(agent 侧直连)
dsh-status.ps1 / dsh-shot.ps1 / dsh-history.ps1进度文本 / 进度截图 / 最近对话
dsh-task.ps1 / dsh-cancel.ps1执行任务 / 取消回合

微信反向操作 DSH(双向桥)

桥监听「控制聊天」,把微信消息映射为 DSH 的 RPC 调用(DSH web 的 /api/<method>,回环免认证):

/help /new /list /switch <序号|前缀> /active /status /shot /history [n] /task <内容> /cancel
直接发普通消息 = 把内容作为任务交给当前 DSH 会话执行

启动(DSH 后台任务):wx-bridge.ps1 -Who "我的控制群" -Timeout 86400 自测(文件传输助手):wx-bridge.ps1 -Who "文件传输助手" -AllowSelf -Timeout 3600

「DSH 截图发给用户」= dsh-shot.ps1 把会话状态(标题/统计/任务清单/最近对话)渲染成 PNG (data/shots/),再经微信发送;/shot 与任务完成推送自动完成。

DSH 提问转发(ask_user_question):agent 需要用户选择/回答时,桥会订阅 DSH 的 events.mux,把问题+选项推送到微信(编号列出),你在微信里直接回复「选项编号/选项内容」 (多问题用「序号: 答案」分行,回复 0 跳过,多选用逗号分隔)即可,回答会回填给 agent, 任务继续执行、完成后照常推送结果。需安装 websocket-client;等待回答超时(默认 600 秒, 配置 question_timeout)自动跳过。

监听实现说明

wxauto4 免费版没有 AddListenChat/GetNextNewMessage(Plus 版 wxautox4 专属), 因此监听采用轮询方案GetSession() 找 isnew 标记 → 打开窗口读新消息 → 打开即标记已读,再配合去重集合。 新消息逐条写入 data/listen.jsonldata/reply_rules.json 配置关键词自动回复。

合规声明

wxauto 官方声明代码仅用于 UIAutomation 技术交流学习,禁止用于生产/营销/非法用途。 频繁群发、营销、新号大量加好友等有封号风险。向非本人聊天窗口发送前请确认对象与频率。