dsh
OpenPetsHQ/openpets将 DeepSeek Harness 的生命周期状态、错误与审批请求,桥接到本地运行的 OpenPets 桌面伙伴。
IM 渠道桥:微信(ilinkai)/ QQ / 飞书接入,支持主动推送——定时任务可唤醒渠道 bot 并把 AI 回复推送到手机。
An IM channel bridge plugin for dsh (DeepSeek Harness): connects WeChat (ilinkai) / QQ (Open Platform) / Feishu (Open Platform) messages into dsh agent sessions, with proactive push support (wake the channel bot and deliver the AI reply back to your phone — for scheduled tasks etc.).
.im-media/<channel>/<date>/ in the workspace; only the path enters the session and the agent views it with read_image — dsh natively supports image input and auto-degrades for text-only models; kept 7 days by default (DSH_MSG_HUB_MEDIA_KEEP_DAYS)asr_refer_text (free, instant, more accurate than self-hosted ASR) and falls back to self-hosted ASR when emptysilk-wasm) → self-hosted ASRDASHSCOPE_API_KEY in state/asr.env; voice is skipped when unset, text and images are unaffectedstate/logs/bridge-debug.log with built-in size rotation (default 5MB × 3) and daily log cleanup (default 14 days); tune via DSH_MSG_HUB_LOG_MAX_BYTES / DSH_MSG_HUB_LOG_KEEP / DSH_MSG_HUB_LOG_KEEP_DAYSdsh-channels-push cordis service):
push({channel, peerId, text}): send text directly to IMtask({channel, peerId, prompt}): wake the channel agent to run a task; the AI reply is delivered back to the IM automatically/sessions lists the 5 most recent sessions (name+ID), /bind <sessionId> binds, /status shows the binding# Option 1: npm package (recommended)
dsh plugin --profile web add dsh-msg-hub
# Option 2: GitHub repository
dsh plugin --profile web add github:AbcdefgXW/dsh-msg-hub
# Option 3: manual
git clone https://github.com/AbcdefgXW/dsh-msg-hub.git
cd dsh-msg-hub && npm install
```bash
git clone https://github.com/USER/dsh-msg-hub.git
cd dsh-msg-hub && npm install
cd $DSH_HOME/profiles/web && pnpm link /path/to/dsh-msg-hub
Register in cordis.patch.yml:
- insert:
- id: dsh-msg-hub
name: dsh-msg-hub
Restart dsh web.
WeChat (ilinkai QR login)
node scripts/weixin-login.mjs login
state/weixin/; restart dsh to activateQQ (Open Platform official bot, two options)
First register a bot app on the QQ Open Platform to get AppID and AppSecret:
# Option A: credentials directly (recommended once the bot exists)
node scripts/qq-login.mjs --appid <AppID> --secret <AppSecret>
# Option B: QR binding (requires an existing bot under this QQ account)
node scripts/qq-login.mjs
Restart dsh after configuring. ⚠️ Proactive pushes additionally require applying for "proactive message permission" on the Open Platform, otherwise they fail silently (passive replies are unaffected).
Feishu (Open Platform enterprise self-built app)
node scripts/feishu-login.mjs --appid <AppID> --secret <AppSecret>
Restart dsh after configuring.
Credentials are stored under the plugin
state/dir (gitignored, never committed); all three channels can run simultaneously.
| Variable | Purpose | Default |
|---|---|---|
DSH_CHANNELS_STATE_DIR | channel state dir (credentials/logs/data) | plugin state/ dir |
DSH_CHANNELS_CWD | channel agent workspace root | /workspace |
state/ (excluded via .gitignore) — never commit themMIT