Skip to content

About

Community plugins for DeepSeek Harness — starting with a Telegram channel the harness does not ship

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Russian version: README.ru.md · English below

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: 40 packages in five groups

  • А — Memory family dsh-pamyat (12)
  • Б — Agent plugins: subscription route, tools, channels (7)
  • В — Host watchers and tools (6)
  • Г — Own services — not agent plugins (2)
  • Д — Host services of sadik — source only (13)

Group А is the Memory family section; groups Б–Д are subsections of Platform plugins.

Memory family dsh-pamyat (12)

Group А. Memory layers built and checked together; dsh-pamyat-vyvoz and -obsluzhivanie sit outside the set as separate packages.

Package npm What it does
dsh-pamyat dsh-pamyat The name for the set: no code, just the declaration of which nine 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 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-omega 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.
dsh-pamyat-secretary dsh-pamyat-secretary Takes the summary before compaction overwrites the history. A refused write is shouted, not swallowed.
dsh-pamyat-restore 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 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 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-storozha dsh-pamyat-storozha Memory watchers inside the agent: compaction notices, fill stages, session coverage; memory maintenance programs.
dsh-pamyat-kompakt dsh-pamyat-kompakt Shared compaction library: window occupancy, the agent's threshold, a summary by our own model, atomic rewrite of the session journal.
dsh-pamyat-kompakt-dsh dsh-pamyat-kompakt-dsh Summary engine inside the platform's native compaction: the summary is written by the dsh-pamyat-kompakt model, the native one on refusal.
dsh-pamyat-vyvoz dsh-pamyat-vyvoz Memory export and import: moving meaning between databases. Not part of the dsh-pamyat set.
dsh-pamyat-obsluzhivanie dsh-pamyat-obsluzhivanie Nightly agent memory maintenance: lesson transfer, cleanup, OMEGA pair judge, consistency check; the result as one alert line.

Platform plugins (28)

Groups Б–Д.

Б — Agent plugins: subscription route, tools, channels (7)

Each is useful on its own and installs alone.

Package npm What it does
dsh-subscription-gateway dsh-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.
dsh-subscription-adapter dsh-subscription-adapter The DSH side of the subscription route: an adapter that lets the harness talk to a subscription gateway.
dsh-tool-bridge dsh-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.
dsh-telegram-multiagent dsh-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.
dsh-schedule-guard dsh-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.
a2a-bus source only 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.
voice-stack source only 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.

dsh-subscription-gateway, dsh-tool-bridge and dsh-schedule-guard are one story, and each is useful on its own. Run the harness on a subscription (dsh-subscription-gateway); let a model driven that way still reach the harness's own tools (dsh-tool-bridge); and if you then let the agent schedule its own wake-ups, put a ceiling on it (dsh-schedule-guard). Design notes for all three, traps included, are in docs/DESIGN.md.

В — Host watchers and tools (6)

Programs for the host the agents live on and for the agent's own shell.

Package npm What it does
dsh-pribory dsh-pribory Shell tools against an agent's self-deception: an exit code without a pipeline, stopping by unit, PATH namesakes, who started a service, atomic placement with a grammar check.
dsh-reestr dsh-reestr A registry of host interventions: what was installed on top of the platform and where, intent-versus-disk checks, registry edits with a backup, and watchers for uncommitted changes, package seams and lock files; installed from the tree — tree = production, there is no portable edition.
dsh-storozha-mashiny dsh-storozha-mashiny Watchdogs for a host running several AI agents: units and timers, kernel and DKMS, updates, IPv6, package copies, temp-dir leftovers, context overflow; alerts through a single command.
dsh-trevogi dsh-trevogi A shared alert sender and journal watchers: one alert command for all watchdogs; a probe carries a mark and does not wake the owner with a false alarm.
oom-watch source only 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.
omega-memory source only Long-term memory for agents, on your machine: service account model, systemd unit, and the wiring that actually reaches the agent.

Г — Own services — not agent plugins (2)

Standalone services with a package.json: they install as npm packages but run as a host service, not as a plugin in an agent's profile.

Package npm What it does
dsh-socseti dsh-socseti Social media app: Telegram, drafts and approvals (the socseti service). Not a plugin: a service.
dsh-vypusk-watch dsh-vypusk-watch Release-window watcher: checks installed packages against the git tag of their version and alerts when production drifts from the release.

Д — Host services of sadik — source only (13)

No package.json: files are laid out on the host by its registry entry. Published as source, as an example of the setup, not as an installable package.

Package npm What it does
dsh-compact-outcomes source only Compaction-outcome observer for the Codex coding agents: alerts when tokens dropped without a DSH compaction event. Not a plugin: a sensor inside those agents' platform plus a systemd timer.
dsh-gateway-ingress source only Gateway ingress: at boot builds an nft table from the agent registry that lets only root, the agent's account and allowed callers reach each gateway port.
dsh-gosti source only Guest circuit: website chat adapter, guest session expiry, staff list into the PII-mask allowlist, guest sandbox, guest OMEGA gateway.
dsh-kopiya-mashiny source only Nightly host backup and its acceptance by action; coverage, size and space watchers; OMEGA database backup.
dsh-limity source only Subscription limits service: Claude, Codex and DeepSeek measurements in one table, limity.json output, threshold alerts, automatic switching of shared gateways. EN
dsh-montazh source only Deployment into production with backup and verification, a local release-tag gate that leaves a gate trace (a root journal outside the tree), transfer into the tree, subject checksum, deployment watchers and a watchdog for tags placed past the gate.
dsh-obhod-stendov source only Nightly and weekly run of the host's stands in the production layout: runner, lists, exceptions, and the stands themselves.
dsh-okno source only Manual root tools for upgrade windows: admission, SDK-layer inventory, session-journal repacking, OMEGA service key.
dsh-pochta source only Coordinator letters and slots: tell-komu, receipt and stuck-letter watchers, mail stop.
dsh-podpiski source only Claude and Codex subscriptions: switchers, token access, Codex watchers and refresher, the /switch receiver. EN
dsh-podyom source only Agent service bring-up (podyom-uzla) and the checks before and after it.
dsh-set-sadik source only Host networking: split routing, reply routing, VPN failover, killswitch, network check.
dsh-storozha-sadik source only Host watchers outside the shared set: sadik-watch, alert channels, compaction watcher, permission-group watcher, outside observation, stand-run reader.

Documentation

  • docs/MEMORY-AND-A2A.md — the memory pipeline dsh-pamyat and 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.
  • docs/SAMOPROBUZHDENIE.md (Russian) — how agent self-wakeup is built here: what the platform already has, what we added, and what changes when several agents share one machine.
  • docs/SVERSHCHIK-PUBLIKACIJ.md (Russian) — the publication reconciler: live system ↔ repository ↔ registry.
  • Two acceptance-verdict records (docs/OT-*-verdikty-0607-0709.md, docs/OT-*-verdikty-0909-1409.md, Russian) — the auditor's verdicts of 06.09–07.09 and 09.09–14.09.2026, kept as history; whether they are published is the owner's decision.
  • DOGOVOR-OTNOSHENIJ-PAMYATI.md (Russian) — the contract for relations between memory records (otnoshenie / otnositsya_k fields of dsh-pamyat-core).
  • SUMMY-PAKETOV-20260911.md (Russian) — accepted package checksums of 11.09.2026.
  • tools/ — repository checks and canaries: check-readme-index.sh (every package directory is named in this README and every link leads to one), check-readme-count.sh (the counts in the headings match the tables and packages/); canaries — in packages/dsh-obhod-stendov/dorabotki/ (B-N-1964, B-N-1995): kanarejka-restarta (will the agent come back after a restart — checked before the restart) and kanarejka-shlyuza (the same for a gateway).

More will land here as we build them. One repository, several packages — a separate repo per plugin is not worth the overhead.

Checks

Every package has stands. A stand with nothing to check exits with code 2 ("blind"), not 0: "the checks did not run" must not look like "the checks passed". Some stands of the host-service packages touch the live machine — the package README says so in its section on checks.

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: the LICENSE file at the root of the tree; packages that carry their own LICENSE have the same text.

About

Community plugins for DeepSeek Harness — starting with a Telegram channel the harness does not ship

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages