iia-arg/dsh-plugins
Community plugins for DeepSeek Harness — starting with a Telegram channel the harness does not ship
Project Overview项目介绍
dsh-plugins is a community plugin collection for DeepSeek Harness, shipping Telegram multi-agent messaging, a subscription-based gateway, a tool bridge for external engines, a self-schedule guard, a local GPU voice stack, long-term memory, OOM monitoring, and an A2A mailbox bus. Install each package independently into your profile directory and register it in the agent preset. Use it when you need messaging, external-model tool access, wake-up governance, local voice, or inter-agent delivery that the harness does not provide. Note: subscription-gateway, voice-stack, oom-watch, and a2a-bus run as services or timers, not plugins; schedule-guard is behavioural, not a security boundary.
dsh-plugins 是 DeepSeek Harness 的社区插件集合,含 Telegram 多智能体通道、订阅网关、工具桥、自调度守护、本地语音栈、长期记忆、OOM 监控与 A2A 邮件总线等包,按包独立安装至 $DSH_HOME/profiles 即可。它补齐了官方未提供的关键能力,适用于需要消息接入、外部模型挂接工具、自我唤醒治理、本地语音与进程内通信的智能体运维场景。注意:订阅网关、语音栈、OOM 监控与 A2A 总线是独立服务或定时器而非插件;schedule-guard 仅做行为约束,不构成安全边界。
请帮我了解并安装插件:【dsh-plugins】【https://github.com/iia-arg/dsh-plugins】
Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add github:iia-arg/dsh-plugins
把 iia-arg/dsh-plugins 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-plugins
Community plugins for DeepSeek Harness, written and used in production on our own agent fleet.
The harness is a capable chassis with an unusually clean plugin model — and a few sharp edges where a failure looks exactly like a success. Everything here was written because the product does not ship it, and every non-obvious line carries a comment explaining what went wrong before that line existed.
What is here: 15 packages, two kinds
Platform plugins (8) — independent pieces, each solving one problem the harness leaves open. Install any of them alone.
Memory family dsh-pamyat (7) — a set built and checked
together: layers that give an agent memory surviving a compaction and a restart. Install the whole
set by its name, npm i dsh-pamyat.
Two kinds, not one list: a platform plugin is useful by itself, a memory layer is useful with its siblings. Counting them as one number hides that difference.
Platform plugins (8)
| Package | What it does |
|---|---|
telegram-multiagent |
Talk to your agent from Telegram. One shared module, per-agent config. Text and voice, whitelist, per-chat sessions, optional file-based agent-to-agent channel. |
subscription-gateway |
Run the harness on a vendor subscription instead of per-token billing. One systemd service per agent: the token lives in exactly one place, the model loop runs through the vendor's own SDK, answers stream back. Not a plugin: a service. |
tool-bridge |
Make harness plugin tools reachable from a model driven by an outside engine rather than the harness's own loop. The harness ships an MCP client but no server — this is the server. |
schedule-guard |
Keep a self-scheduling agent from running away: caps consecutive and per-day self-wakeups, enforces a minimum repeat interval, deletes runaway repeats, and tells the owner why. Behavioural, not a security boundary — and it says so out loud. |
voice-stack |
Local speech recognition on the machine's GPU — the agent hears voice messages without sending audio to anyone's cloud. Not a plugin: a service with a one-line command contract. |
omega-memory |
Long-term memory for agents, on your machine: service account model, systemd unit, and the wiring that actually reaches the agent. |
oom-watch |
Learn when the memory limit killed your agent. Reads the kernel journal, not the cgroup counter that resets on restart. Not a plugin: a systemd timer. |
a2a-bus |
Let agents on one machine write to each other directly, without giving up isolation. Each agent owns a mailbox nobody else can list; a postman running as root transfers ownership of the letter, so the sender loses access once it is delivered. Not a plugin: a spool, a service and a timer. |
Memory family dsh-pamyat (7)
The harness compacts a long conversation by summarising it — and the summary is gone the moment the process restarts. These packages give an agent memory that survives that, split into layers that each do one thing and say out loud what they cannot do.
| Package | What it does |
|---|---|
dsh-pamyat |
The name for the set: no code, just the declaration of which six packages were built and checked together, in exactly which versions, and by what. Versions are exact, ranges are refused — a name that resolves to different sets for different people is worse than no name. |
dsh-pamyat-core |
Storage on node:sqlite, a journal of write decisions, and the policy for which classes need confirmation. A node with nobody to confirm says so out loud instead of silently writing anyway. |
dsh-pamyat-secretary |
Takes the summary before compaction overwrites the history. A refused write is shouted, not swallowed. |
dsh-pamyat-restore |
The reading side: puts the summary back after a compaction, and a briefing at start. Trust and age are read by an explicit branch before any comparison — a missing number never becomes a zero. |
dsh-pamyat-byudzhet |
An incoming budget: how much of the past to lift back into context. Its absence is announced — "budget not applied" must not be indistinguishable from "applied and dropped nothing". |
dsh-pamyat-nudzh |
Spend accounting: is it time to compact yet. Counts occupancy of the window (the last call's input), not the sum over all calls — the sum grows without bound and a compaction never reduces it. |
dsh-pamyat-omega |
An optional long-term layer over external storage via MCP. Without it nothing breaks; you only lose the ability to carry knowledge off the node. |
Install the set by its name — npm i dsh-pamyat pulls the six in their exact versions. Each layer
also stands alone. Every package carries a stand suite; a stand that cannot check anything exits
2 ("nothing to check"), never 0, because "no checks ran" must not look like "checks passed".
subscription-gateway, tool-bridge and schedule-guard are one story, and each is useful on
its own. Run the harness on a subscription (subscription-gateway); let a model driven that way
still reach the harness's own tools (tool-bridge); and if you then let the agent schedule its
own wake-ups, put a ceiling on it (schedule-guard). Design notes for all three, traps included,
are in docs/DESIGN.md.
Documentation
docs/MEMORY-AND-A2A.md— the memory pipelinedsh-pamyatand agent-to-agent mail (A2A) as one system: seams, services, settings, refusals, the input filter, release and acceptance order, stands. Russian original:docs/MEMORY-AND-A2A.ru.md.docs/DESIGN.md— design notes for the tool bridge, self-waking and the subscription route.
More will land here as we build them. One repository, several packages — a separate repo per plugin is not worth the overhead.
Install
Each package is independent:
# inside your profile directory ($DSH_HOME/profiles/<name>)
pnpm add dsh-telegram-multiagent
Then add the plugin row to your agent preset — each package README says exactly where and why.
Why publish this
Two reasons. The plugin ecosystem around this harness is thin, and a working messenger channel is the piece most people need first. And the comments are worth more than the code: they name the traps that produce green checkmarks and no working system.
If something here saves you an evening, that is the point.
MIT.
xmanrui/dsh-im
tencent-connect/dsh-qqbot
flymysql/dsh-remote
whiteguo233/dsh-openbiliclaw
hanshanyike/dsh-yolo
omdsh-dev/dsh-lark
AX1202/ax-feishu-bridge