DDDPG
dsh-plugins
personal developed deepseek-harness plugins
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
dsh-plugins
English | 中文
A personal collection of lightweight DeepSeek Harness (dsh) web plugins — each one is a small, independently installable package under
plugins/that adds one focused capability to the DSH workspace (aCmd+/shortcut palette, slash-command helpers, session status alerts, …). Low-invasiveness by design: no forks and no patches to the harness. Every plugin is published to npm and installs with a singledsh plugin addcommand — no repo clone needed (see Quick start). Plugins work standalone or alongside others.The repo also carries DSH development references (UI/UX spec, theme tokens, plugin authoring conventions) to support standardized development and keep the whole workspace visually and functionally consistent.
At a glance
dsh-keys-palette — A unified shortcut-management palette for dsh (Cmd+/), with a public keys.actions registry so other plugins can register actions the same way.
dsh-tab-complete — Tab completes the highlighted slash-menu candidate (commands, skills, subagents, @-files) without executing it.
dsh-session-browser — Read-only tools so the model can list, read, and search other sessions in the same workspace.
dsh-tui-command-ext — Everyday CLI-style slash commands (/clear, /rewind, /fork, /resume, …), plus /compact-fast: Qwen Code-inspired context compression that does not call an LLM.
dsh-session-status-alert — Global cross-session status toasts with inline approval, Q&A, and plan review — in the spirit of Vibe Island.
dsh-insights — A Claude Code-style /insights command that analyzes session usage across workspaces and writes a local interactive HTML report.
dsh-plan-keeper — Persists plans and workspace memory, injects them into later turns, and surfaces them in a Deliverables view.
Plugin status
7 plugins — 7 ready (published to npm).
| Status | Plugin | npm version | Notes |
|---|---|---|---|
| ✅ Ready | dsh-keys-palette | 0.2.0 | npm / bundle channel |
| ✅ Ready | dsh-tab-complete | 0.1.1 | npm / bundle channel |
| ✅ Ready | dsh-session-browser | 0.2.0 | npm / bundle channel; list_sessions / read_session / search_sessions; FTS enabled by default |
| ✅ Ready | dsh-tui-command-ext | 0.1.0 | npm / bundle channel; merged from dsh-clear-command + dsh-command-kit |
| ✅ Ready | dsh-session-status-alert | 0.2.0 | npm / bundle channel; client half with timer inject |
| ✅ Ready | dsh-insights | 0.2.0 | npm / bundle channel; optional reportPath / facetDir (defaults under $DSH_HOME) |
| ✅ Ready | dsh-plan-keeper | 0.1.0 | npm / bundle channel; memory_write + deliverables view |
Plugins
| Plugin | Highlights | Install |
|---|---|---|
| dsh-keys-palette | • Cmd+/ non-modal palette• Built-in shortcut catalog • Custom bindings with conflict detection • Bindings persist in localStorage • Settings → Shortcuts • Public keys.actions registry• zh/en UI | npm (bundle) — dsh plugin --profile web add dsh-keys-palette |
| dsh-tab-complete | • Tab completes the highlighted candidate without executing • Per-source behavior: commands / skills / subagents / @-files• popupSelect keeps the bare token • IME and modifier+Tab do not complete | npm (bundle) — dsh plugin --profile web add dsh-tab-complete |
| dsh-session-browser | • list_sessions / read_session / search_sessions• Same-workspace cwd scoping• UNTRUSTED snapshots • Bounded read/list/search budgets • SQLite FTS enabled by default (with limitations) | npm (bundle) — dsh plugin --profile web add dsh-session-browser |
| dsh-tui-command-ext | • Merged TUI slash-command set • Visual interaction only (no conversation echo) • /clear /rewind /fork /resume /archive /status /rename /unarchive /compact-fast /theme /lang | npm (bundle) — dsh plugin --profile web add dsh-tui-command-ext |
| dsh-session-status-alert | • Cross-workspace toasts: completion + pending • Inline approval / Q&A / plan review • Stack / inline / grouped layouts • Subagent completion filter • Settings page • In-memory prefs (reset on refresh) | npm (bundle) — dsh plugin --profile web add dsh-session-status-alert |
| dsh-insights | • Foreground /insights in the current session (agent.steer, interruptible)• insights_collect / insights_facet / insights_aggregate / insights_render / insights_run tools (subagent-parallel facet fan-out)• Self-contained interactive HTML report, written locally • --refresh, --window N, --max N flags | npm (bundle) — dsh plugin --profile web add dsh-insights |
| dsh-plan-keeper | • Plan capture under .dsh-outputs/plans/• Typed workspace memory ( user / feedback / project / reference)• 6KB per-turn memory inject • memory_write model tool• Deliverables conversation view • Unauthenticated localhost RPC | npm (bundle) — dsh plugin --profile web add dsh-plan-keeper |
Quick start
Install into the web profile of a running dsh (replace the profile name as needed). All seven plugins use the same npm / bundle channel — dsh plugin add installs the package and auto-mounts it (takes effect on the next dsh start):
dsh plugin --profile web add dsh-keys-palette
dsh plugin --profile web add dsh-tab-complete
dsh plugin --profile web add dsh-tui-command-ext
dsh plugin --profile web add dsh-plan-keeper
dsh plugin --profile web add dsh-session-browser
dsh plugin --profile web add dsh-insights
dsh plugin --profile web add dsh-session-status-alert
dsh plugin --profile <name> add <pkg>— npm / bundle channel. Packages that declaredsh.bundle.patchjoin the profile's bundle stack automatically; every plugin here does. Takes effect on the nextdshstart. Relative paths work for local checkouts:dsh plugin --profile web add ./plugins/dsh-keys-palette.- All plugins work out of the box with sensible defaults:
dsh-session-browserenables the SQLite FTS index,dsh-insightswrites to$DSH_HOME/storages/insights/. Both are overridable per profile (see the plugin READMEs). ./scripts/install.sh <profile> plugins/<name>— local-development helper for this repo's checkouts (installs the package and appends a loader insert tocordis.patch.yml). Not needed for end users; if you previously installed a plugin this way, remove its insert row before switching to the bundle channel (mixing both mounts it twice).
Uninstall (bundle channel): dsh plugin --profile web remove <pkg>.
Development guidelines
The docs/ directory collects DSH development references to support standardized plugin development and keep the workspace visually and functionally consistent (all derived from the actual shipped sources — no invented values):
| Doc | Covers |
|---|---|
| plugin-development.md | Plugin authoring conventions: package layout, the two install channels, npm publishing checklist. |
| dsh-web-ui-design-spec.md | DSH Web UI/UX design spec (light/dark): theme token system, core component visuals, icons. |
| ask-user-question-mechanism.md | Full trigger chain of the ask_user_question capability (model → host bridge → Web UI → answer). |
| parts/ | Detailed token / icon / component inventories. |
Roadmap
- Publish plugins to npm —
dsh-keys-palette@0.2.0,dsh-tab-complete@0.1.1,dsh-session-browser@0.2.0,dsh-tui-command-ext@0.1.0,dsh-session-status-alert@0.2.0,dsh-plan-keeper@0.1.0,dsh-insights@0.2.0 -
dsh-plan-keeper: published @0.1.0 -
dsh-insights: foreground/insightspublished @0.2.0 - Unify every plugin on the npm / bundle install channel (
dsh plugin addonly —dsh-session-browser/dsh-insights/dsh-session-status-alert@0.2.0) -
dsh-keys-palette: host-settings-backed persistence, cross-tab binding sync, more built-in actions - CI: per-plugin syntax +
npm packvalidation on change - More plugins — suggestions welcome (open an issue or PR)
License
MIT — see LICENSE (each plugin package ships its own).