DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Wechat Plugin — DSH Plugin for DeepSeek Harness
← Plugins

dsh-wechat-plugin

Wechat Plugin

WeChat channel for DeepSeek Harness: lock the PC, walk away, and drive the agent from your phone. No OpenClaw and no public IP required.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add dsh-wechat-plugin@0.43.1
READMECompatibilityVersions

Compatibility and provenance

Wechat Plugin is published as dsh-wechat-plugin and currently resolves to version 0.43.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
10/16/2026

Versions

0.43.1stable
10/13/2026
0.42.0stable
10/12/2026
0.41.0stable
10/12/2026
Show 22 more versionsCollapse versions
0.40.0stable
10/12/2026
0.39.3stable
10/12/2026
0.38.1stable
10/12/2026
0.38.0stable
10/12/2026
0.37.1stable
10/12/2026
0.37.0stable
10/12/2026
0.36.5stable
10/8/2026
0.36.4stable
10/8/2026
0.36.3stable
10/8/2026
0.36.2stable
10/8/2026
0.36.1stable
10/8/2026
0.36.0stable
10/8/2026
0.35.2stable
10/7/2026
0.35.1stable
10/7/2026
0.35.0stable
10/7/2026
0.34.1stable
10/7/2026
0.34.0stable
10/7/2026
0.33.1stable
10/7/2026
0.33.0stable
10/7/2026
0.32.3stable
10/7/2026
0.32.2stable
10/7/2026
0.32.0stable
10/7/2026

Related plugins

Loading related plugins…

Latest
0.43.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
843.9 kB
Files
78
Surface
web
License
MIT
Source
npm
GitHub
★ 165
Weekly downloads
5,232
Security scan
✓ v0.43.1 scan passed
Last push
10/13/2026
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in integrations-communication.

Acp App@deepseek-ai/dsh-acp-appThe dsh ACP profile bundle: automation-only JSON-RPC stdio and process lifecycle over dsh-baseAb Publishdsh-ab-publishBrowser-automation publishing tool that logs into and posts to arbitrary websites, in one publishable plugin packageAb Wechat Scrapedsh-ab-wechat-scrape--- description: "The out-of-tree wechat_scrape tool: retrieves WeChat official-account articles, filters promotional blocks, and saves each as a Markdown file, for maintainers of this machine's dsh profiles." kind: "package-reference" ---Im@xmanrui/dsh-im把微信、飞书、企微、钉钉、QQ、Telegram、WhatsApp、Slack、Discord、Matrix接入DSH。 Connect Telegram, WhatsApp, Slack, Discord, Matrix, WeChat, Feishu, WeCom, DingTalk, and QQ to DSH.

README

dsh-wechat-plugin

Control DeepSeek Harness from WeChat: chat on your phone, and the DSH agent on your computer does the work.

No OpenClaw, and no public IP required.

Runs on the current DSH desktop app — developed and tested against DSH 0.2.0-rc.2, and kept current as the desktop app moves on. A lot of community plugins quietly stopped working when DSH updated; this one is maintained alongside it, and every change is released through CI.

The phone on the left, at 16:16, reading an answer about the PC's clock; the locked PC in the middle, also at 16:16; and below them the DeepSeek Harness window working through that same conversation

The screenshot above is the whole idea in one frame: the PC is locked, and the phone is still using it. At 16:16 the phone asks for a file on that machine's desktop and for the time on its clock — both come back, the two status bars read the same minute, and underneath is the window that did the work, with both requests already answered in the session list.

中文说明

Features

  • Text both ways. Your WeChat message becomes a DSH prompt; the reply comes back to WeChat.
  • Photos, files, voice, video — both directions. Attachments are saved into the session workspace and handed to the agent; the agent can send files back with send_to_wechat.
  • One WeChat chat, many DSH sessions. /new, /list, /switch, /model, /current, /cancel — or just say "switch to the other one".
  • Answer permission prompts from your phone. Approvals and multiple-choice questions are sent to WeChat and answered with a number, so being away from the desk does not stall the agent.
  • Settings page under Settings → WeChat.

What it looks like

A scheduled wake-up arriving over a gameA session in the workplace workspace pushing to WeChat
Proactive push. A session can message you on its own. Here a "wake me at 16:39" lands while a game is open — the agent reaches the phone, not the other way round.Any workspace, not just the WeChat one. This session lives in workplace and still pushes to your phone. Which conversations may do that is a setting.
A file edited on the PC and returned, and a document sent from the phoneVoice control, and the agent sending back a picture
Files both ways. Left: it edits a file on the PC and sends the result back. Right: you send it a document from the phone and ask what it says.Voice in, pictures out. Speak the request instead of typing it. Ask for an image and it searches, downloads and sends one, source included.
The WeChat settings page
Settings → WeChat. Permission preset per conversation, proactive push, attachment merge window, reply limits, command reference, logs.

Install

For the DSH desktop app. It needs DSH's workspace, tool and UI services — the standard desktop composition — on a machine that stays on. Tested against 0.2.0-rc.2, and updated alongside the desktop app.

Open the plugin entry in the sidebar and choose 添加插件 (add plugin). The field takes a package name, a Git URL, a tarball, or a local path.

The name to install is dsh-wechat-plugin

The repository is called dsh-wechat, but the package is not: copy dsh-wechat-plugin rather than typing it, and mind the -plugin. The install command has to match the package name exactly.

From npm — nothing to configure
dsh-wechat-plugin

Add a version if you need one: dsh-wechat-plugin@0.36.5.

From GitHub — builds itself, for tracking a branch or a commit
https://github.com/xcisxc29/dsh-wechat

DSH clones the repository and builds it. pnpm will stop the build once and ask you to allow it — that is expected, and it is how any Git-hosted plugin builds. DSH reports which key to add; it looks like this, in ~/.dsh/profiles/desktop/pnpm-workspace.yaml:

allowBuilds:
  dsh-wechat-workspace@git+file:///…/dsh-wechat#<commit>: true

Most people do not need this. Reach for it to pin a commit or follow a branch, or when npm is unreachable.

Wait for the install to finish, click 立即启用 (enable now), and restart DSH.

Install from a terminal instead

The app drives pnpm underneath, so the same thing headlessly:

dsh plugin --profile desktop add dsh-wechat-plugin
dsh plugin --profile desktop add https://github.com/xcisxc29/dsh-wechat

You then have to enable the bundle yourself — which is what 立即启用 does for you — in ~/.dsh/profiles/desktop/package.json:

{
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dsh-wechat-plugin"
      ]
    }
  }
}
Install from a locally built tarball
pnpm install && pnpm run dist && pnpm run pack
# → dsh-wechat-plugin-<version>.tgz

Paste the absolute path to that .tgz into 添加插件, or hand it to the command line:

dsh plugin --profile desktop add /absolute/path/to/dsh-wechat-plugin-<version>.tgz

Getting started

After restarting DSH, open Settings → WeChat, click 重新扫码 (rescan), and scan the QR code with your phone. Send 你好 from WeChat and you should get a reply.

Optional: voice to text

WeChat voice notes are SILK. Install this codec to transcribe them to WAV locally:

dsh plugin --profile desktop add silk-wasm

Without it voice still works: the raw SILK file is saved and handed to the agent along with the service's own transcription.

Usage

Just send a message and it reaches the agent:

你好

Type these to control which DSH conversation you are talking to:

CommandWhat it does
/newStart a fresh conversation. Anything after it becomes the title: /new 修复登录 starts a conversation called 「修复登录」. Without one, the conversation gets a name from your first message
/listThis workspace's conversations — it opens that level directly (up to 10 rows per screen)
/list allThe workspaces on this machine, one row each with its conversation count. Reply with a number or a name to enter one
/switch 3Move to number 3 on that screen
/switch e716f0Move by the short id printed at the end of the row — independent of numbering, so it never goes stale
查看其余The next ten rows, at either level, all the way to the end. Numbers run on across screens (1–10, then 11–20)
reply 3, a name, or a row's short idWorks with the listing on screen — no /switch needed
quote the list, then /switch 3Move to number 3 of that screen, frozen in the message you quoted
/modelList the models and each one's reasoning levels, marking the model and level in use
/model 2Switch to number 2, or send a model name instead
/model 等级 高Change the reasoning level of the model in use (等级 is the word; the level names are the ones the list printed)
/model 2 等级 高Switch the model and set the level in one step
/currentWhich conversation you are in
/cancelStop the task that is running
/helpThis list

Spaces are optional: /switch3, /switch 3 and /switch:3 all work.

Numbers go stale. Conversations run while you read the list, so by the time you reply "3" the third row may be a different one. That is why every row ends with a short id of at most six characters — which a reply or /switch takes directly — and why quoting a listing and replying with a number resolves against the numbers that screen printed.

The list is two levels, ten rows at a time. /list opens this workspace's conversations; /list all opens the workspaces on the machine, and you enter one by number or by name. Either level pages with 查看其余, numbering runs on across screens (1–10, then 11–20), and the last screen says so instead of offering a step that does nothing. Entering a workspace only moves where you are browsing — it does not move your conversation, which still takes a second reply inside it.

Plain language works too — "switch to the other one", "what conversations do I have", "stop". The agent judges the intent rather than matching fixed rules, and a switch tells you whether it succeeded or failed.

Security

Only you can reach it. The channel talks to Tencent's official iLink gateway, and nothing else — no third-party service, no self-hosted relay in the middle. When you scan the QR code, the bot is cryptographically bound to your WeChat account: the token it receives embeds your ilink_user_id, and the service only ever delivers messages from that one account. The bot is not a WeChat contact — it has no shareable card, nothing searches for it, and nobody can add it. There is no "someone else could message it" surface, which is why no allowlist exists: the protocol already is one.

Two things are still true and worth knowing:

Conversations from WeChat run with full permissions by default — the agent does not ask before it acts. That is deliberate: a permission prompt is delivered to WeChat and the task then waits there, so on a phone every command would stall until you answered a conversation you had walked away from. Set Permissions for WeChat conversations to Follow the DSH setting in the settings page if you want the same guardrails you have at the desk.

The agent runs as you. It can execute commands and read and write files, with your user's permissions — that is what it is for, and it means anything you can do on this machine, it can do. So: skim what you asked for before walking away, and lock the screen when you leave. Locking does not stop the agent (see the user guide), and it keeps anyone passing by out of your desktop.

Any session on this machine can push to your WeChat by default. That is what makes "tell me when it is done" work: the session doing the work is usually not the one your WeChat conversation is bound to, and without this it could not report its own result. Turn off Let other sessions push to WeChat to restore the stricter rule, where only the bound session may send.

Documentation

docs/HANDBOOK-USER.mdUser guide, from installing to troubleshooting (Chinese)
docs/HANDBOOK-DEV.mdDevelopment handbook: what went wrong, how to release (Chinese)
SETTINGS.mdWhat each setting actually does (Chinese)
docs/INTERNALS.mdProtocol references, architecture, the two packages (Chinese)
docs/PROGRESS.mdFeature status and how each was verified (Chinese)
docs/POSTMORTEM.mdEvery real failure met while building this (Chinese)
docs/RELEASING.mdHow a version gets published (Chinese)
examples/Complete core-only examples: an echo bot, and sending a file

Development

pnpm install
pnpm build              # compiles only, leaving @dsh-wechat/core imports for pack to rewrite
pnpm run dist           # build + inline core: the loadable form a Git install needs
pnpm typecheck
pnpm test               # 316 tests
pnpm check              # build + typecheck + test
pnpm run pack           # run dist first
pnpm run verify-pack    # unpack, check the manifest's files, mount it as DSH would

Two build outputs, on purpose. build is the compiling step alone, and it keeps @dsh-wechat/core as a package import so pack can redirect it into the vendored dist/core. dist runs that compile and then rewrites the import to a relative path instead, which is what a Git install ends up with — it clones the repository and runs prepare, never pack.

Rebuild core after changing it. Tests resolve @dsh-wechat/core through node_modules to lib/, so source edits without a rebuild test the old code — and pass.

Licence

MIT — see LICENSE.