JustGenius-s
DSH-Plugs
DSH Plugins Cellection
- Stars
- 4
- Language
- TypeScript
- Created
- Aug 13, 2026
- Updated
- Aug 14, 2026
Introduction
DSH-Plugs
A monorepo of plugins for the DeepSeek Harness (DSH) — one folder = one plugin.
Plugins
@just-genius/dsh-session-navigator
A Codex-style message navigator rail: a vertical tick rail on the conversation transcript with one tick per user message, active highlight, stepped hover, and smooth jump.

@just-genius/dsh-model-custom-ex
Replaces the official Models settings page (fork of ui-settings-models) to add per-model dropdown multi-selects for vision (input) and thinking strength (reasoningEfforts) — the two controls the stock page punts to settings.yaml.

@just-genius/dsh-plugin-marketplace
Adds a Marketplace tab to Settings → Plugins. It browses this repo plus the awesome-dsh-plugin catalog, marks already-installed plugins, and can copy or run the catalog install command (restart required).
Repository layout
DSH-Plugs/
├── package.json # root workspace (shared build/type toolchain)
├── pnpm-workspace.yaml # packages: ['plugins/*']
├── tsconfig.base.json # shared TS config
└── plugins/
└── session-navigator/ # one plugin per folder
What a plugin is
A plugin is a Cordis plugin npm package split in two halves:
| Half | Source | Output | Role |
|---|---|---|---|
| node | src/index.ts | lib/index.js | Host entry (usually an empty apply for pure UI plugins) |
| browser | src/client/index.tsx | lib/client.js | Browser entry, registered via window.__ModuleLoader__.load({ id, factory }) and mounting React panels with ctx.slots.register in apply |
Two key declarations in package.json:
dsh.client— declares the browser-side injection (injectlists the client package names it depends on;platform: web).dsh.bundle.patch— points atcordis.patch.yml, so installing the package automatically inserts its loader row into the profile.
Commands
pnpm install # install dependencies
pnpm build # build all plugins (src → lib)
pnpm watch # watch and rebuild
pnpm typecheck # type-check
pnpm clean # remove all lib/
Adding a plugin
- Copy a
plugins/*folder and rename it to your plugin name. - Set
package.json'sname(keep the@just-genius/dsh-*prefix). - Edit
src/index.ts(node half) andsrc/client/index.tsx(browser half). pnpm build.
Installing a plugin
# Link a local folder into the profile (relative paths anchor to the current directory)
dsh plugin --profile web add ./plugins/session-navigator
Because the package declares dsh.bundle.patch, it joins the profile's bundle layer automatically on install; refresh the web page to see it.
Uninstall:
dsh plugin --profile web remove @just-genius/dsh-session-navigator