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.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:br1nosense/dsh-wxauto-plugin
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
A DSH skill plugin built on wxauto4 (free tier, supports WeChat 4.1.x).
Core features
- Task progress push: when a DSH task starts or finishes, send progress messages (text or files) to the WeChat chat you configure.
- Message listening: watch selected chats, append new messages to a JSONL log for the agent to read, and reply automatically to configured keywords.
- WeChat ⇄ DSH two-way bridge: from WeChat, send commands or plain messages to switch/new conversations, drive DSH tasks, and receive progress screenshots (session state rendered to PNG) plus completion reports.
Install (from GitHub)
# 1. Clone the repository
git clone https://github.com/br1nosense/dsh-wxauto-plugin.git
cd dsh-wxauto-plugin
# 2. Install Python dependencies (wxauto4 free tier + websocket-client:
# the bridge needs it to forward DSH questions to WeChat)
py -3 -m pip install wxauto4 websocket-client
# 3. Install as a DSH plugin (registers into the default web profile)
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\install.ps1
# 4. Restart `dsh web` for the plugin to take effect
- Requirements: Windows 10/11 + WeChat 4.1.x client (signed in) + Python 3.9–3.12.
- Uninstall:
dsh plugin --profile web rm @dsh-user/dsh-wxautothen restartdsh web.
How the bundle works
This package is a standard DSH profile bundle:
package.jsondeclaresdsh.bundle.patch: ./cordis.patch.yml, sodsh plugin addregisters it into the profile's bundle layer.cordis.patch.ymlmounts thewxautoplugin line (injecting theskillsandsettingsservices).lib/index.jsregisters thedsh-wxautoskill intoctx.skills(resourceBasepoints at this package'sskills/dsh-wxautodirectory), registers awxautosettings namespace (persisted underwxauto:in~/.dsh/settings.yaml), and provides thectx.wxautoservice (bridge on/off, bridge state, config mirrordata/dsh_settings.json).lib/client.jsregisters a dedicated WeChat Automation tab in the settings sidebar.
Bridge switch: wxauto.enabled (settings page tab or settings.yaml).
On = auto-start the bridge (it occupies the local WeChat window; do not
operate WeChat manually meanwhile). Off = auto-stop.
Two-way bridge commands
Send these to the control chat:
/help /new /list /switch <index|prefix> /active /status /shot /history [n] /task <content> /cancel
A plain message = hand that content to the current DSH session as a task
DSH's ask_user_question prompts are forwarded to WeChat with numbered
options; replying with an option number (or index: answer, 0 to skip,
comma-separated for multiple) feeds the answer back and the task continues.
Command reference
| Command | Purpose |
|---|---|
wx-test.ps1 |
Environment preflight (Python / wxauto4 / WeChat process / login) |
wx-sessions.ps1 |
List sessions (confirm chat names) |
wx-send.ps1 |
Send progress/completion info (text/file, multiple targets, @config) |
wx-read.ps1 |
Read the last N messages of a chat |
wx-listen.ps1 |
Listen (polling, JSONL to disk + keyword auto-reply; -Once for one pass) |
wx-bridge.ps1 |
WeChat ⇄ DSH two-way bridge |
dsh-list.ps1 / dsh-new.ps1 / dsh-switch.ps1 |
List / new / switch sessions |
dsh-status.ps1 / dsh-shot.ps1 / dsh-history.ps1 |
Progress text / progress screenshot / recent conversation |
dsh-task.ps1 / dsh-cancel.ps1 |
Run a task / cancel the current turn |
Compliance note
wxauto's official stance is that the code is for UIAutomation technical learning only — not for production, marketing, or illegal use. Frequent bulk messaging and mass friending risk account bans. Confirm recipients and frequency before sending to anyone other than yourself.
License
MIT — see LICENSE.
Links
More in this category
xmanrui/dsh-im★ 1579
Connect IM bots to DeepSeek Harness via QR codes or bot credentials (9 channels: Feishu, WeChat, DingTalk, WeCom, QQ, Slack, Telegram, Discord, and WhatsApp).
shaobeichen/dsh-pocket★ 1456
Remote phone access to the DSH Web UI: scan a QR code for LAN or public (cloudflared tunnel) access with real-time sync, a mobile-adaptive layout, and a settings tab.
inclusionAI/Avernet#deepseek-harness-channel-bcn★ 602
Connects DeepSeek Harness to Avernet's Bot Collaboration Network over WebSocket V2, with automatic onboarding, isolated agent sessions, tool-call events, and multi-bot routing tools.
omdsh-dev/dsh-notification★ 85
Desktop notifications for turn completions, with per-outcome controls and keyword rules.
whyihaveyou/dsh-suite#plugin-notify★ 56
IM webhook and local notifications on turn completion, errors, or approval (Feishu/WeCom/DingTalk/Slack/Discord/custom).
omdsh-dev/dsh-lark★ 55
Lark/Feishu bot channel for DeepSeek Harness: each chat drives its own agent, and tool approvals, model questions, and plan reviews return as cards answered by a button or a reply. Switch workspace and model from the chat (`/cd`, `/model`, `/new`), and run several bots that keep separate sessions and can hand turns to each other in one group.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.