Plugin directory / Knowledge / dsh-plugin-toggle
dsh-plugin-toggle
Verified · install-tested on dsh DamonKoy
What it does
DSH plugin switchboard: Settings tab with descriptions, fuzzy search, and runtime start/stop
Works — verified, early-stage project
DSH plugin switchboard: Settings tab with descriptions, fuzzy search, and runtime start/stop It installs cleanly and boots without issues in our testing. It's early-stage but functional.
“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
README
dsh-plugin-toggle
English | 中文
A DeepSeek Harness (DSH) plugin switchboard for the web GUI.
Open Settings → Plugins → Plugin Switch. Every loaded plugin is a card with:
- a short description (from that package's
package.jsondescription) - enabled / disabled + fiber phase (running / pending / failed / …)
- Start / Stop (runtime only — does not rewrite
cordis.yml) - fuzzy search (name / module / id / description; subsequence match)
Core / surface plugins (webserver, connection, session, agent, …) are marked Core and cannot be stopped from this UI, so the page cannot take itself down.
Install
dsh plugin --profile web add github:DamonKoy/dsh-plugin-toggle
Restart dsh web, then open Settings → Plugins → Plugin Switch.
Or add the repo as a profile dependency and include the bundle:
{
"dependencies": {
"dsh-plugin-toggle": "github:DamonKoy/dsh-plugin-toggle"
},
"dsh": {
"profile": {
"bundles": ["dsh-plugin-toggle"]
}
}
}
Then pnpm install in the profile directory and restart dsh web.
What you get
| Feature | Notes |
|---|---|
| Plugin cards | Title, entry id, description, enabled tag, phase |
| Categories | Grouped sections (core / UI / theme / tools / fun / other), collapsible |
| Sorting | Within a group: togglable plugins first, then by status (running first), then name |
| Fuzzy search | Tokens match as substring or subsequence across fields incl. category |
| Start / Stop | entry.update({ disabled }) — runtime only, no tree.write() |
| Core guard | Surface/runtime entries cannot be stopped (id- and module-name-based); others need a two-step confirm |
| Usage history | Every toggle is persisted to ~/.dsh/dsh-plugin-toggle.jsonl (last 1000), shown in a collapsible “使用记录” section |
| Persistence | Installed as a composition plugin — survives dsh web restarts |
HTTP API (same origin)
| Method | Path | Role |
|---|---|---|
GET |
/plugin-toggle/list |
{ entries: [...] } |
GET |
/plugin-toggle/logs |
{ records: [...] } (recent usage history, newest first) |
POST |
/plugin-toggle/set |
{ entryId, enabled } → { ok, entry? | message? } |
POST is same-origin only.
Layout
dsh-plugin-toggle/
lib/index.js Host: list + set routes over the Cordis Loader
client/client.js Client: Settings tab (ModuleLoader factory)
cordis.patch.yml Bundle insert (`id: plugin-toggle`)
The client exports.inject is the service name slots (not a package name). Using package names here parks the client fiber forever.
License
MIT
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install dsh-plugin-toggle for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
This plugin is GitHub source (not published to npm) — install it straight from the repo:
Web profile:
dsh plugin --profile web add github:DamonKoy/dsh-plugin-toggle Headless (CLI) profile:
dsh plugin --profile headless add github:DamonKoy/dsh-plugin-toggle Test report
Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.