DeepSeek Harness Plugin

173787247/dsh-wsl-im

Stars ★ 1 Category WSL & Windows Interop Added 2026-09-20

Bridges Feishu, WeCom aibot, DingTalk Stream and QQ Gateway chats into dsh agents over outbound long connections, with an im_status tool. Ships with an empty user allowlist, which means EVERYONE can drive your agent — set allowedUserIds before exposing a bot; IM input can run tools on the host.

Install

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:173787247/dsh-wsl-im

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

DeepSeek Harness plugin: chat with dsh from Feishu / WeCom / DingTalk / QQ.

中文说明 → README.zh.md

Messages go: IM → this plugin → ctx.agents → reply.


Compatibility

Field Value
Plugin dsh-wsl-im 0.2.4
Minimum dsh 0.1.2
Latest verified See dsh-wsl-kit Compatibility
Kit set not in install.sh (optional)
Cloud Flash deepseek-flash — not configured here

Architecture

Not in install.sh. Wire behavior follows vendor docs.

flowchart TB
  chats["Feishu / WeCom / DingTalk / QQ"] --> im["dsh-wsl-im"]
  im --> ws["one workspace per IM"]
  im --> agents["ctx.agents"]
  agents --> reply["reply text back to that chat"]

Each IM gets ~/.dsh/im-workspace/{feishu,wecom,dingtalk,qq}, registered on plugin start. One session per chat, not one session for the whole platform. Suite diagram: dsh-wsl-kit. This plugin is 0.2.4 (optional, not in install.sh).

Adapters (v0.2 test set)

Adapter Mode Creds
feishu Long connection FEISHU_APP_ID / FEISHU_APP_SECRET
wecom 智能机器人 WSS WECOM_BOT_ID / WECOM_BOT_SECRET
dingtalk Stream DINGTALK_CLIENT_ID / DINGTALK_CLIENT_SECRET
qq Official Gateway QQ_APP_ID / QQ_APP_SECRET
mock Local HTTP DSH_IM_MOCK=1POST http://127.0.0.1:18999/mock

Enable with DSH_IM_FEISHU=1 (etc.) or adapters.*.enabled: true in patch config.

Feishu peer dependency

# inside the dsh profile / plugin install tree
npm i @larksuiteoapi/node-sdk

WeCom proxy

openws.work.weixin.qq.com often needs HTTPS_PROXY/HTTP_PROXY. The adapter uses https-proxy-agent (ws ignores NODE_USE_ENV_PROXY). One Bot = one live WS — stop any other client on the same Bot while testing.

Install

# track default branch; do not pin 0.2.0
dsh plugin --profile web add github:173787247/dsh-wsl-im

Awesome: entry draft in docs/awesome-entry.yml — submit to awesome-dsh-plugin after the repo is ≥1 day old (CI gate).

Source env (see examples/dsh-wsl-im.env.example), restart web, new session. Tool: im_status.

Mock smoke (no real bot)

export DSH_IM_MOCK=1
# restart dsh web, then:
curl -s http://127.0.0.1:18999/mock -H 'content-type: application/json' \
  -d '{"text":"/status","chatId":"t1"}'

Security

Empty allowedUserIds = everyone. Set a whitelist before exposing bots. IM input can drive tools on the host.

License

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.