dsh-reach

September 7, 2026 · View on GitHub

License DSH plugin Gitee CI Version npm version npm downloads

Multi-channel decision & remote-control bridge for DeepSeek Harness (DSH): pushes any workspace's approval/question cards to IM channels (WeChat iLink, Telegram, Feishu — plus QQ/DingTalk/WeCom v2 drop-in foundations) and answers them from chat, with a session console, per-channel security, and an open push service.

Status: Phase 1–3 complete (WeChat + Telegram + Feishu channels, v0.1.2); v2 channel foundations (QQ/DingTalk/WeCom) on the open reachChannels registry. The design plan, competitor research, official contract verification, and phased roadmap live in docs/design/03-rebuild-direction-and-plan.md. Release (GitHub repo + npm publish) follows in a dedicated session.

Compatibility

SurfaceStatus
HarnessDeepSeek Harness dsh-v0.1.3-alpha.1 (GitHub tag). npm dependency line: @deepseek-ai/dsh 0.1.2-rc.1 (peers >=0.1.2-rc.1 <0.2.0). Verified 2026-09-06 against the dsh-v0.1.3-alpha.1 master checkout (full gate chain + profile install smoke).
Node^22.19.0 || >=24.0.0

Features (Phase 1)

  • Cross-session decision push: approval/question cards from ANY workspace are mirrored to WeChat (iLink/ClawBot) with stable #token ids and P{n} numbering; reply 1/2, P1=1 P2=2, P1=Q1=2, or /rp /rq — answered through the native pending waterfall (first reply wins with the GUI).
  • Fail-closed security: first sender becomes the owner; empty allowlists deny everyone; unknown senders are audited and never answered.
  • Session console: /status /silent /notify /tasks /enter /history /stop /next /help plus native DSH command passthrough.
  • Proactive push: the reach_send tool with an outbound file fence; rate budget + FIFO re-queue; silent mode; background completion notices.
  • Settings tab: Settings → Plugins → IM Bridge (status, switches, re-scan/logout).
  • Open channel registry: third-party plugins register a channel via ctx.get('reachChannels').registerChannel({ id, adapter, priority, ownsChatId, startMonitor }); routing, outbound, and monitor lifecycle are all bridge-owned (QQ/DingTalk/WeCom ride this same path).

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-reach
dsh1024 plugin --profile web add dsh-reach

Restart DSH after installation (bundle patches apply at startup).

Configuration

The profile row accepts these keys (Schemastery-validated; invalid values fail the load loudly):

KeyDefaultDescription
crossSessionNotifytruePush decision cards from ANY workspace/session (master switch)
notifyTaskEventsfalseBackground task finished/errored notifications
cardTimeoutSec1800Decision-card soft timeout in seconds (0 = wait forever)
approvalOnTimeoutdelegateTimed-out card policy: delegate (GUI chain) / reject / wait
textChunkLimit4000Long reply chunk limit per message, in characters
silentfalseOnly final replies, no per-step streaming
cwd''Default working directory for new IM sessions ('' = host cwd)
baseUrl / cdnBaseUrl / botTypeiLink defaultsWeChat gateway, media CDN, bot type
allowFrom[]Sender allowlist (empty = fail-closed; first sender = owner)
queueModequeueBusy delivery: queue or steer
maxQueue / sendBudget / windowSec50 / 10 / 60Queue cap, per-window send budget, window seconds
denyUnauthorizedfalseSilently ignore (true) or notice (false) unknown senders

Development

pnpm install
pnpm run typecheck && pnpm run typecheck:ci && pnpm test
pnpm run build && pnpm run verify:self-contained && pnpm run verify:artifacts
pnpm run check:readmes && pnpm pack

Install from the DSH Desktop Market

All PerryLink plugins are browsable in the built-in DSH Desktop Market: Market → Sources → add source → paste https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → select it. Installation still goes through the Market's npm-identity verification and your confirmation.

This project is one of the 37 DeepSeek Harness plugins maintained by PerryLink. If this one helps you, the others likely will too:

PluginOne-liner
dsh-auto-reviewSecond-model auto-review on the approval chain, fail-closed by default
dsh-background-agentsDurable background child agents with a Web UI sidebar, messaging and interrupt
dsh-budgetCost governance for DeepSeek Harness: budgets, carbon, and latency in one panel.
dsh-checkpoint-rewindClaude Code /rewind-equivalent: snapshots, session forks, one-shot restore
dsh-claude-moveMigrate Claude Code sessions, memory, skills and CLAUDE.md into DSH
dsh-clickCross-platform native desktop control for DeepSeek Harness — Windows first.
dsh-composer-historyTerminal-style input history for the web composer: arrows, Ctrl+R search
dsh-data-qualityDataset quality checks and citation cross-checks (the optional numeric bridge consumed here)
dsh-defendPrompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness.
dsh-doublecheckEngineering-discipline guard: requirements grill, test gates, adversary review
dsh-drawUnified static-image generation routing for DeepSeek Harness.
dsh-fastRead-only performance diagnostics for DeepSeek Harness.
dsh-fund-researchDeterministic research reports for Chinese public mutual funds
dsh-githubGitHub PR/issues integration for DSH, every write gated by approval
dsh-industry-researchIndustry research orchestration that seals its deliverables through this plugin's ctx.researchReport.assemble
dsh-libraryLocal document knowledge base for DeepSeek Harness.
dsh-local-aiLocal-model (Ollama) integration for DeepSeek Harness.
dsh-lsp-actionsLSP diagnostics, formatting, completion, code actions and rename over language servers
dsh-maskPII masking middleware: anonymize at the model boundary, restore at the display layer
dsh-mcp-panelRead-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors
dsh-mementoApproval-gated cross-session memory: ctx.memory seam + SQLite + memory tool
dsh-observeOpenTelemetry and Langfuse observability exporter for DeepSeek Harness.
dsh-output-stylesClaude Code outputStyles-equivalent runtime style switching
dsh-permission-rulesClaude Code-style declarative allow/deny/ask permission rules with audit
dsh-personal-directivePersonal directive injector with top-bar toggle (framework edition)
dsh-plugin-guidePlugin-development knowledge base as an on-demand agent skill
dsh-research-reportVerifiable research-report engine: content-addressed evidence ledger and sealed versions
dsh-scoreMulti-dimensional quality scoring for DeepSeek Harness plugins.
dsh-session-pinPin sessions in the Web sidebar with durable ordering
dsh-session-syncCross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store.
dsh-skill-pack-securitySecurity-audit skill pack: secret scan, dependency and supply-chain review
dsh-talkVoice-first session loop for DeepSeek Harness: talk to it, hear it answer.
dsh-test-driveIsolated install-and-smoke test drives for DeepSeek Harness plugins.
dsh-translateVendor parameter translation and deterministic JSON repair for DeepSeek Harness.
dsh-ticktickTickTick/Dida365 task bridge: session-header panel + 11 tools
dsh-wechatWeChat ↔ DSH bridge (Tencent iLink bot): text/image/file/voice, approvals in chat

Install from the DSH Desktop Market

All PerryLink plugins are browsable in the built-in DSH Desktop Market: Market → Sources → add source → paste https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → select it. Installation still goes through the Market's npm-identity verification and your confirmation.

License

Apache-2.0. Third-party notices in THIRD_PARTY_NOTICES.md.