DeepSeek Harness plugin

dsh-im-bridge-shaobeic

统一 IM 桥插件家族(monorepo):核心 dsh-im + 渠道适配器(telegram / feishu)。让 DeepSeek Harness 通过 IM 可指挥、可通知、可审批。

Jump to install

Source facts

Repository
shaobeichen/dsh-im-bridge
Latest update
Aug 15, 2026
Category
Remote & Mobile
GitHub stars
2
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/shaobeichen/dsh-im-bridge
Plugin: dsh-im-bridge-shaobeic
Author: shaobeichen

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer4 files
README.en.mdSource · read only
README language

<div align="center">

<picture> <source media="(prefers-color-scheme: dark)" srcset="docs/banner.jpg"> <source media="(prefers-color-scheme: light)" srcset="docs/banner.jpg"> <img alt="dsh-im-bridge" src="docs/banner.jpg" width="720"> </picture>

<h1>dsh-im-bridge</h1>

![GitHub stars](https://github.com/shaobeichen/dsh-im-bridge/stargazers) ![GitHub forks](https://github.com/shaobeichen/dsh-im-bridge/network/members) ![CI](https://github.com/shaobeichen/dsh-im-bridge/actions/workflows/ci.yml) ![License: MIT](LICENSE)

Command DeepSeek Harness from Feishu, WeCom, or Telegram: remote tasks · result notifications · risk approval

中文 | English

</div>

dsh-im-bridge is an IM channel for DeepSeek Harness. DeepSeek Harness (DSH) is an AI agent engine that runs locally on your computer — it can read and write code in your working directory, run commands, and execute long tasks. Normally you control it through its web interface. dsh-im-bridge adds a "remote control" to that interface: you message a bot in Feishu, WeCom, or Telegram, those messages become instructions for DSH, and results come back to your chat.

In short: your chat window is DSH's control panel.

✨ Supported platforms

PlatformStatusNotes
Feishu (Lark)✅ worksOfficial long connection, approval via card buttons, verified live
WeCom (WeChat Work)✅ worksCallback URL + message encryption, approval via text command
Telegram✅ implementedNo public webhook needed (polling), approval via buttons (bring your own bot token)
DingTalkplanned

📦 What's inside

  • Chat control: send tasks to the AI from IM, as naturally as chatting
  • Risk approval: dangerous operations (file deletion, system commands) require your confirmation — denied by default
  • Result notifications: tasks pushed on completion or failure, with duration and token usage
  • Full output export: when long output is truncated, use /log to send the full text as a file
  • Session management: /new to start, /status to check, /mute to silence notifications, and more
  • Access control: configure who can use it and who is an admin (only admins can approve and change settings)

🚀 Getting started

Prerequisite: DeepSeek Harness installed on your computer. If dsh reports command not found, install it first:

npm install -g @deepseek-ai/dsh     # global install; verify with: dsh --version
# Don't want a global install? Prefix every command with npx: npx @deepseek-ai/dsh <command>

All four platforms follow the same path: install the plugin → configure credentials → restart → chat. No need to clone this repo or write code.

> Want all channels at once (or one-click install from dshmarket)? dsh plugin --profile web add github:shaobeichen/dsh-im-bridge is equivalent to installing the core + Feishu + WeCom + Telegram + WeChat together; channels without credentials just show "disconnected" and don't affect the others.

PlatformOne-command installPrepareUse
Feishudsh plugin --profile web add dsh-im dsh-im-feishuWeb QR setup (recommended): Settings → Plugins → Feishu → "Scan to connect", then scan with Feishu (or terminal npx -y dsh-im-feishu-qr); manual app creation: [guide](docs/feishu-setup.md)Configure credentials, restart dsh web, private-chat the bot: /new → send tasks; risky operations send an approval card — tap a button
WeComdsh plugin --profile web add dsh-im dsh-im-wecomCreate a self-built app in the admin console, get CorpID / AgentId / Secret, configure callback URL and Trusted IP ([guide](docs/wecom-setup.md))Configure credentials, restart dsh web, open the app from "Workbench": /new → send tasks; approval comes as text — reply /approve <id> yes (no buttons)
Telegramdsh plugin --profile web add dsh-im dsh-im-telegramCreate a bot with @BotFather, get the token ([guide](docs/telegram-setup.md))Configure credentials, restart dsh web, private-chat the bot: /new → send tasks; risky operations send an approval card — tap a button
WeChatdsh plugin --profile web add dsh-im dsh-im-weixinWeb QR bind (recommended): Settings → Plugins → WeChat → "Scan to bind", then scan with WeChat (pairing digits entered in the page); prerequisite: your account has the WeChat bot entry under Me → Settings → Plugins ([guide](docs/weixin-setup.md))Restart dsh web after binding, then message the bot in WeChat: /new → send tasks; approvals come as text — reply /approve <id> yes (no buttons)

> Credentials go in environment variables (FEISHU_APP_ID, WECOM_CORP_ID, TELEGRAM_BOT_TOKEN, etc.). See each platform's setup doc for details.

> [!NOTE] > Want to run the integration scripts without installing into DSH (requires cloning the repo + Node.js 22+)? See the demo runners under "For developers" below.

🗂 Package layout

DirectoryDescription
packages/imCore: message handling, sessions, approvals, notifications
packages/im-telegramTelegram adapter
packages/im-feishuFeishu adapter (incl. QR setup dsh-im-feishu-qr)
packages/im-wecomWeCom adapter
packages/im-weixinWeChat adapter (Tencent iLink, incl. QR bind dsh-im-weixin-qr)
demoDemo and runner scripts
docsDocumentation

🧭 Architecture

Message flow:

Message from your IM
      ↓
Channel adapter (converts platform message to a unified format)
      ↓
Core dsh-im (command or task? session management, approvals)
      ↓
DeepSeek Harness (does the actual work)
      ↓
Result sent back to your chat

For more, see the [docs index](docs/README.md).

🤝 For developers

  • Want to modify code or add a channel? Start with [CONTRIBUTING.md](CONTRIBUTING.md)
  • Repo rules for AI agents: [AGENTS.md](AGENTS.md)
  • Original product spec: [docs/PRD-v0.5.md](docs/PRD-v0.5.md)

Run the integration scripts without installing into DSH? (clone this repo + Node.js 22+)

node demo/mock-demo.mjs                  # terminal-only mock IM
node demo/feishu-real.mjs --mode demo    # live Feishu (needs FEISHU_APP_ID/SECRET)
node demo/wecom-real.mjs --mode demo     # live WeCom (needs WECOM_* credentials)
node demo/telegram-real.mjs --mode demo  # live Telegram (needs TELEGRAM_BOT_TOKEN)

🔒 Security

This project executes remote instructions and touches real files, so security is a priority. The core principle: denied by default, risky operations require your approval. Security model and vulnerability reporting: [SECURITY.md](SECURITY.md).

End users don't configure anything security-related: everyone is denied by default, and a stranger's first message triggers a trust confirmation — the admin (a user listed in security.admins) taps ✅ or replies /trust to let them in, permanently. The admin configures their own key once.

📄 License

MIT