DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Im Hub — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-im-hub

Im Hub

面向 DeepSeek Harness (dsh) 的多平台即时通讯网关——支持飞书 (Lark)、企业微信 (WeChat Work) 和 Telegram,并在 Web GUI 中提供可视化设置卡片。将您的 dsh agent 转变为可通过您常用的即时通讯应用访问的聊天助手。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:ThreeBody6666/dsh-im-hub#46d9059d874ac3df646de8fcaa20836c1a135053
README兼容性版本
Telegram settings with labels, guidance, and examplesFeishu settings with labels, guidance, and examplesWeCom settings with labels, guidance, and examples

兼容性与来源证明

Im Hub 以 dsh-im-hub 发布,当前版本为 0.2.3。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/20

版本

0.2.3stable
2026/8/21
0.2.2stable
2026/8/21
0.2.1stable
2026/8/21
查看其余 2 个版本收起版本
0.2.0stable
2026/8/15
0.1.0stable
2026/8/14

相关插件

正在加载相关插件…

最新版
0.2.3
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 3
周下载
104
最近提交
2026/8/21
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 integrations-communication 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Im@xmanrui/dsh-im将十一种 IM 渠道和一个公网 AI Office 接入本地 DeepSeek Harness。Pocketdsh-pocket把 DeepSeek Harness 装进你的口袋:一个包、一个设置页,手机扫码即同步访问电脑上的 DSH(局域网 + 公网,实时同屏)。DSCODE@toddzheng024/dscode-bundle完整的 DeepSeek 编码代理,支持持久化 shell、Ultra 协作和自动权限审查。

README

dsh-im-hub

English | 简体中文

A multi-platform IM gateway plugin for DeepSeek Harness (dsh): connect your dsh agent to Feishu (Lark), WeCom (WeChat Work), and Telegram, and chat with it from the messaging apps you already use.

One agent per chat. Multi-turn context. Whitelist access control. Idle reaping. No public endpoint required (Feishu long connection / Telegram long polling; WeCom uses an HTTP callback).

Highlights

  • Feishu (Lark) — official WebSocket long connection (/callback/ws/endpoint + protobuf frames, client-driven ping keepalive, 3s event ACK, message-id dedup), or webhook mode. No public URL needed for the default mode. The same adapter also serves the international Lark edition (open.larksuite.com) via adapters.lark.
  • WeCom (WeChat Work) — app message callback with full WXBizMsgCrypt AES-256-CBC decryption and SHA1 signature verification, plus active replies via the messaging API.
  • Telegram — Bot API long polling (getUpdates), automatic message splitting at the 4096-char limit.
  • Mock adapter — stdin + local HTTP endpoint for testing without any real platform credentials.
  • Per-chat agent sessions: conversation context is retained, each chat is serialized (no interleaved turns), and idle agents are disposed after a configurable timeout.
  • Whitelist enforcement (allowedUserIds) on every adapter; empty means everyone — set it in production.
  • Slack-style commands: /help, /reset, /status, /model.

Install

# From npm (recommended):
dsh plugin --profile im add dsh-im-hub

# From a Git repo or a local checkout (development):
dsh plugin --profile im add link:D:/projects/dsh-im-hub

This creates a headless profile im whose bundles are @deepseek-ai/dsh-base + dsh-im-hub. Boot it with:

dsh --profile im

Configure

Option A — Web GUI settings card (v0.2.0+)

When the plugin runs inside the Web GUI (dsh web profile), a visual configuration card appears at Settings → Plugins → Configurable plugins → IM Gateway (dsh-im-hub). It edits the same configuration live — no cordis.patch.yml hand-editing, no restart needed (the bridge hot-reloads on save). Credential fields are stored server-side and shown as write-only "configured / not set" badges.

Guided configuration

Every control states its purpose and every empty input includes a safe example. Credential values remain write-only: the screenshots below use placeholders, not real tokens or secrets.

Telegram: Bot Token and access whitelist

Telegram settings with labels, guidance, and examples

Feishu: App ID, App Secret, and Open ID whitelist

Feishu settings with labels, guidance, and examples

WeCom: enterprise ID, application credentials, and callback Token

WeCom settings with labels, guidance, and examples

Option B — YAML (cordis.patch.yml)

The plugin row is disabled by default. Enable it from the profile's own cordis.patch.yml ($DSH_HOME/profiles/im/cordis.patch.yml):

- id: dsh-im-hub
  disabled: false
  config:
    adapters:
      telegram:
        enabled: true
        token: '123456:ABC-DEF...'
        allowedUserIds: [123456789]        # numeric Telegram user ids; empty = everyone

Full configuration reference:

KeyDefaultDescription
adapters.telegram.enabledfalseEnable the Telegram Bot API adapter (long polling).
adapters.telegram.token''Bot token from @BotFather.
adapters.telegram.allowedUserIds[]Numeric user ids allowed to talk to the bot.
adapters.telegram.timeoutSeconds50getUpdates long-poll timeout.
adapters.telegram.pollIntervalMs500Gap after a poll timeout/error.
adapters.feishu.enabledfalseEnable the Feishu adapter.
adapters.feishu.appId / appSecret''Feishu/Lark custom app credentials.
adapters.feishu.mode'websocket'websocket (official long connection, no public URL) or webhook.
adapters.feishu.webhookPath'/feishu'HTTP path for webhook mode.
adapters.feishu.verificationToken''Webhook event verification token.
adapters.feishu.allowedUserIds[]Open ids allowed to talk to the bot.
adapters.lark.enabledfalseEnable the international Lark adapter (same open platform as Feishu, open.larksuite.com).
adapters.lark.appId / appSecret''Lark custom app credentials.
adapters.lark.mode'websocket'websocket (official long connection, no public URL) or webhook.

Feishu / Lark prerequisites

  • Create a custom app in the Feishu Open Platform (or the Lark Open Platform for the international edition), enable the im.message.receive_v1 event subscription, and grant the message permissions (im:message:send_as_bot, im:message:p2p_msg, im:message:group_msg / group_at_msg).
  • Long-connection mode is available to self-built (enterprise) apps. In the admin console choose Event subscription → 使用长连接接收事件 (long connection) or configure the webhook URL for webhook mode.

WeCom prerequisites

  • In the WeCom admin console create an app, configure 接收消息服务器 (callback server) with the URL https://your-public-host/wecom, a random Token and a 43-char EncodingAESKey, and copy them into the config.
  • The callback server needs a public HTTPS URL (or a tunnel) — WeCom does not offer a long-connection mode.

Commands

CommandEffect
/helpShow command help.
/resetClear this chat's conversation context (fresh agent).
/statusShow active chats / agents / adapters.
/modelShow the current model selection.

How it works

IM platform ──(adapter)──► Bridge ──► ctx.agents.create({ sessionId })
   ▲                          │                │
   └──── reply text ◄─────────┴── session/event listener ◄── agent turn
  • Each platform:chatId maps to one agent session (like @deepseek-ai/dsh-headless, but kept alive per chat).
  • Inbound IM messages enter the session with source.kind = 'plugin' / form = 'relay' (community norm), and outbound text is read back from session/event (assistant/message, aggregated per turn, then chunked to maxMessageLength).
  • Turns per chat are serialized through a busy-promise chain; a message queue prevents interleaving.
  • Idle agents are disposed after agent.idleTimeoutMs and re-created on the next message.

Security notes

  • Force a whitelist. Set allowedUserIds on every enabled adapter before exposing the bot publicly. An empty list means anyone can drive your agent — which can execute tools on the host.
  • IM messages are injected into the agent session as plugin-originated user messages; they do not bypass the deployment's own approval/guardrail policy — treat them like any other user input.
  • Platform secrets (token, appSecret, encodingAesKey) live in the profile's cordis.patch.yml; keep that file private.

Development

node --test test/                          # unit tests (protobuf frame codec)
dsh plugin --profile im add link:D:/projects/dsh-im-hub   # install from checkout
dsh --profile im --patch test/disable-skin.overlay.yml         # boot with mock adapter
# POST a message: curl -X POST http://127.0.0.1:9099/mock -H 'content-type: application/json' -d '{"text":"hi","chatId":"test"}'

Tip: if the dsh-skin manager ($DSH_HOME/cordis.patch.yml) inserted a UI-skin row that your headless profile cannot resolve, disable it via a --patch overlay (see test/disable-skin.overlay.yml) — the home layer outranks the profile layer, so an overlay is the reliable place to turn it off.

License

MIT

adapters.lark.webhookPath
'/lark'
HTTP path for webhook mode.
adapters.lark.verificationToken''Webhook event verification token.
adapters.lark.allowedUserIds[]Open ids allowed to talk to the bot.
adapters.wecom.enabledfalseEnable the WeCom app-message callback adapter.
adapters.wecom.corpId / corpSecret / agentId''WeCom app credentials.
adapters.wecom.token / encodingAesKey''Callback Token / EncodingAESKey from the WeCom admin console.
adapters.wecom.path'/wecom'HTTP callback path.
adapters.wecom.allowedUserIds[]User ids allowed to talk to the bot.
adapters.mock.enabledfalseTest-only adapter (stdin + local HTTP).
adapters.mock.port0Fixed HTTP port for the mock endpoint (0 = ephemeral).
agent.cwd''Working directory for agent sessions (defaults to dsh's cwd).
agent.provider / agent.model''Override the model selection; empty = deployment default.
agent.maxMessageLength4000Max chars per outbound IM message (longer replies split).
agent.idleTimeoutMs1800000Idle time before a chat's agent is disposed (0 = never).
agent.instructionPrefix''Prefix prepended to every user message.
http.host / http.port0.0.0.0 / 8080Bind address for webhook-mode HTTP servers (feishu webhook / wecom callback).