dsh-wsl-im
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=1 → POST 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