DSH-Plugins
DiscoveredDeepSeek Harness plugins
DSH-Plugins
Plugins for DeepSeek Harness (dsh) — an agent harness built on Cordis where everything is a plugin.
Each package under packages/ is an independently installable dsh bundle.
Plugins
| Package | What it does |
|---|---|
dsh-plugin-browserkit | Gives agents a real browser to drive and to verify: accessibility snapshots, ref-based interaction, assertions, tabs, dialogs, login persistence, uploads, screenshots, console/network inspection, and CDP attach to an existing browser. One isolated browser per agent. |
Install
# into a profile
dsh plugin --profile <profile> add <spec> # spec: npm name, absolute path, tarball, or git URL
# verify the bundle composed
dsh --profile <profile> --dump-config
dsh --profile <profile> --dump-config-schema
The Desktop app owns its desktop profile, so the CLI refuses to manage it. Install through the GUI's Plugins page, or add a row to %USERPROFILE%\.dsh\cordis.patch.yml (the home layer applies to every profile).
Repository layout
packages/<name>/
package.json # name, dsh.bundle.patch, dependencies
cordis.patch.yml # the bundle's patch layer: which plugin rows it inserts
lib/ # the plugin entry and its modules (plain ESM, no build step)
locale/ # display metadata: meta.title, meta.description
test/ # node:test suites
Plugins here ship plain ESM JavaScript with no build step. A dsh plugin is a module exporting name / inject / Config / apply, and a bundle is a package whose package.json declares which patch file inserts its rows. Neither needs a compiler, so a checked-out plugin can be loaded from an absolute path immediately — which is what scripts/dev-overlay.mjs does.
Development
pnpm install
pnpm test # every package's node:test suite
pnpm run dev:overlay # write .dev/overlay.cordis.patch.yml referencing the working tree
Conventions this repo follows
- Function-plugin contract: named exports only, no default export — a default export makes the Loader discard
inject. Configis a native Schemastery schema, because the harness introspects it for--dump-config-schemaand for configuration forms. A plain Standard-Schema object loads but fails the dump.- No hardcoded tunables: anything two deployments might set differently is a validated config field, and an unknown key fails at load instead of silently keeping a default.
- Registrations are effects: anything registered through
ctxunwinds on unload, so resources are released byctx.effect(...)disposers rather than manual teardown. - Tool schemas stay inside the harness's JSON-Schema subset (
type/oneOf/properties/required/additionalProperties/items/enum/constplus annotations). Each package pins this with a test:ToolRuntime.register()rejects the whole plugin entry otherwise, which is a startup failure rather than a runtime one. - Tests exercise the real thing. Fakes substitute for the harness context, not for the external system the plugin drives.
License
MIT — see each package's LICENSE.
Comments
Loading…
Similar plugins
by wryyyds7
Community plugins for DeepSeek Harness (dsh)
★ 0
MIT
TypeScript
Aug 18, 2026
dsh plugin --profile web add @wryyyds7/dsh-plugins-rootby Ceelog
deepseek harness plugins
★ 8
↓ 94/wk
TypeScript
Aug 23, 2026
dsh plugin --profile web add @opendsh/dsh-plugin-scheduled-tasksby haimuhaimu
My first DeepSeek Harness plugin (dsh-plugin)
★ 0
JavaScript
Aug 19, 2026
dsh plugin --profile web add dsh-hello-pluginby PlusQi
个人 DeepSeek Harness (DSH) 插件集
★ 0
MIT
JavaScript
Sep 10, 2026
dsh plugin --profile web add dsh-pluginsby 173787247
DeepSeek Harness WSL plugin (dsh-wsl-db)
★ 1
MIT
JavaScript
Sep 30, 2026
dsh plugin --profile web add dsh-wsl-dbby jwilson411
A minimal, tested template for DeepSeek Harness plugins.
★ 0
MIT
JavaScript
Sep 1, 2026
dsh plugin --profile web add dsh-plugin-kit