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. 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
alvinunreal/openpets#dsh★ 1075
Bridges DeepSeek Harness lifecycle status, errors, and approval requests to a locally running OpenPets desktop companion.
shaobeichen/dsh-pocket★ 120
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.
omdsh-dev/dsh-notification★ 59
Desktop notifications for turn completions, with per-outcome controls and keyword rules.
omdsh-dev/dsh-open-in-vscode★ 49
Open DSH workspace directories in VS Code directly from the web GUI.
xmanrui/dsh-im★ 48
Connect IM bots to DeepSeek Harness via QR codes or bot credentials (9 channels: Feishu, WeChat, DingTalk, WeCom, QQ, Slack, Telegram, Discord, and WhatsApp).
THEWOLFWALKER/dsh-notifier★ 40
Unified notification & remote control for DSH: one `notify()` API, 25+ channels (Telegram / DingTalk / Feishu / WeCom / QQ bot / WxPusher / PushPlus / ServerChan / Bark / Discord / Slack / ntfy / webhook...), level routing (timeSensitive / active / passive) with tiered retry, multi-channel inbound approval (Telegram buttons, Feishu cards, QQ, WxPusher, WeChat iLink), official QR login for QQ/DingTalk/Feishu, a local web admin console, multi-agent routing, desktop notifications — and a mobile command center: `!status` / `!stop` / `!retry` agent control from your phone plus actionable notifications (view result / retry / logs buttons that call back into the agent). Secrets redacted, tool rate-limited, zero runtime deps — plus an open event source: other plugins can inject the notifier service (ctx.notifier) and subscribe to dsh-notifier/sent events, reusing notification without coupling — and an identity system (v0.7): pairing codes (/pair in any DM, first redeemer becomes owner), composite-key bindings, member roles, and a guided bootstrap state when the whitelist is empty.