
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
dsh-msg-hub
Advanced tools
dsh IM hub: WeChat(ilinkai) / QQ / Feishu bridge with proactive push & remote monitoring
dsh(DeepSeek Harness)IM 渠道桥插件:把微信(ilinkai)/ QQ(开放平台)/ 飞书(开放平台)的消息接入 dsh agent 会话,并支持主动推送(供定时任务等场景唤醒 bot 并把 AI 回复回传手机)。
.im-media/<渠道>/<日期>/,会话里只带路径,由 agent 用 read_image 自行查看——dsh 原生支持图片输入,纯文本模型会自动降级;默认保留 7 天(DSH_MSG_HUB_MEDIA_KEEP_DAYS 可调)asr_refer_text(免费、即时、比自建更准),为空才回退自建 ASRsilk-wasm)→ 自建 ASRstate/asr.env 写 DASHSCOPE_API_KEY;未配置时语音自动跳过,不影响文本与图片state/logs/bridge-debug.log,内置大小轮转(默认 5MB × 3 份)与每日日志清理(默认 14 天),可用 DSH_MSG_HUB_LOG_MAX_BYTES / DSH_MSG_HUB_LOG_KEEP / DSH_MSG_HUB_LOG_KEEP_DAYS 调整dsh-channels-push cordis 服务):
push({channel, peerId, text}):直接向 IM 发文本task({channel, peerId, prompt}):唤醒渠道 agent 执行任务,AI 回复自动回传 IM/sessions 列出最近 5 个会话(名称+ID)、/bind <会话ID> 绑定、/status 查看绑定状态# 方式一:npm 包(推荐)
dsh plugin --profile web add dsh-msg-hub
# 方式二:GitHub 仓库
dsh plugin --profile web add github:AbcdefgXW/dsh-msg-hub
# 方式三:手动(本地开发/内网)
git clone https://github.com/AbcdefgXW/dsh-msg-hub.git
cd dsh-msg-hub && npm install
# 软链进 profile 并加入 bundles:
cd $DSH_HOME/profiles/web && pnpm link /路径/dsh-msg-hub
# 然后确认 package.json 的 dsh.profile.bundles 包含 dsh-msg-hub
dsh plugin add会自动将本插件加入 profile 的dsh.profile.bundles并挂载插件自带的注册行(cordis.patch.yml),无需也不应手动修改任何配置文件。⚠️ 排查注册问题时请检查
package.json的dsh.profile.bundles是否包含dsh-msg-hub;切勿再在 profile 的cordis.patch.yml里手动insert本插件——bundles 已挂载时手动 insert 会导致duplicate loader entry id启动崩溃。
重启 dsh web。
微信(ilinkai 扫码登录)
node scripts/weixin-login.mjs login
state/weixin/,重启 dsh 生效QQ(开放平台官方机器人,两种方式)
先到 QQ 开放平台 注册机器人应用,拿到 AppID 与 AppSecret:
# 方式 A:凭证直填(推荐,机器人已创建时)
node scripts/qq-login.mjs --appid <AppID> --secret <AppSecret>
# 方式 B:扫码绑定(要求该 QQ 账号下已存在机器人应用)
node scripts/qq-login.mjs
配置后重启 dsh 生效。⚠️ 定时主动推送还需在开放平台申请「主动消息权限」,否则推送会静默失败(被动回复不受影响)。
飞书(开放平台企业自建应用)
node scripts/feishu-login.mjs --appid <AppID> --secret <AppSecret>
配置后重启 dsh 生效。
凭证全部保存在插件
state/目录(已 gitignore,不会提交);三个渠道可同时启用。
微信单条消息有长度上限(实测 1280 字符完整、1380 被拒),超长自动分段发送。分段上限可配置(默认 1200 字符/条,留余量):
# 方式一:dsh-toolbox-web 设置页 → 定时任务下方「微信消息分段上限」输入框(改动即时生效)
# 方式二:直接改配置文件
vi state/weixin/config.json # {"segmentLimit": 1200}
改后即时生效,无需重启。
# 方式一:dsh 命令
dsh plugin --profile web remove dsh-msg-hub
# 方式二:手动
# 1. 编辑 profile 的 package.json,从 dsh.profile.bundles 移除 "dsh-msg-hub"
# 2. rm -rf $DSH_HOME/profiles/web/node_modules/dsh-msg-hub
# 3. rm -rf <插件目录>/state # 凭证/日志/会话 token
# 4. 重启 dsh web
卸载后 dsh-toolbox-web 的定时心跳 IM 渠道推送自动不可用(回退主工作区心跳),其余功能不受影响。
① duplicate loader entry id: dsh-msg-hub(最常见)——被注册两次(bundles + 手动 insert):
vi /home/dsh/profiles/web/cordis.patch.yml
# 删除形如以下的手动 insert 块(bundles 会自动挂载,不需要它):
# - insert:
# - id: dsh-msg-hub
# name: 'dsh-msg-hub'
# 保留 sandbox-policy / approval 等系统配置不动
② cannot resolve profile bundle "dsh-msg-hub"(依赖缺失)
vi /home/dsh/profiles/web/package.json # 检查 bundles 与 dependencies 对应
ls -la /home/dsh/profiles/web/node_modules/ | grep dsh-
ln -s /path/to/插件目录 /home/dsh/profiles/web/node_modules/dsh-msg-hub # 恢复软链
通用救急(备份回滚):
ls /home/dsh/profiles/web/cordis.patch.yml.bak-* # patch 备份
ls /home/dsh/profiles/web/package.json.bak-* # package.json 备份
cp 备份名 /home/dsh/profiles/web/cordis.patch.yml # 覆盖回去
修改后重启 dsh 生效;仍失败看日志:docker logs deepseek-harness。
⚠️ 本插件自带
cordis.patch.yml注册行,由dsh plugin add自动挂载,切勿在 profile 的cordis.patch.yml手动 insert(见「安装」警示)。
内置微信 / QQ / 飞书三个渠道;其他渠道通过适配器注册表接入,无需改本插件代码:
// 第三方插件(如 dsh-telegram-bridge)在启动时注册:
const api = ctx.get("dsh-channels-push"); // 服务 id:dsh-channels-push
api.registerChannel("telegram", {
// 必选:向 peerId 发送文本(peerId 为渠道侧的用户/群标识)
send: async (peerId, text) => { /* 调 Telegram Bot API 发送 */ },
// 可选:自定义会话 ID 匹配(默认按 ch-<channel>- 前缀解析)
matchSessionId: (sessionId) => sessionId.startsWith("ch-telegram-"),
});
注册后自动获得完整能力:
push({ channel: "telegram", peerId, text }) —— 定时心跳等可直接推到新渠道task({ channel, peerId, prompt }) —— 唤醒渠道 agent 执行并把回复回传resolveChannel("ch-telegram-<peerId>") —— 与内置渠道一致会话 ID 规范:ch-<channel>-<peerId>(如 ch-weixin-xxx、ch-telegram-xxx)。
| 变量 | 用途 | 默认 |
|---|---|---|
DSH_CHANNELS_STATE_DIR | 渠道状态目录(凭证/日志/数据) | 插件 state/ 目录 |
DSH_CHANNELS_CWD | 渠道 agent 工作区根 | /workspace |
state/ 目录(.gitignore 已排除),请勿提交MIT
FAQs
dsh IM hub: WeChat(ilinkai) / QQ / Feishu bridge with proactive push & remote monitoring
The npm package dsh-msg-hub receives a total of 271 weekly downloads. As such, dsh-msg-hub popularity was classified as not popular.
We found that dsh-msg-hub demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.