JustGenius-s/DSH-Plugs--packages-runtime ↗★ 8

@just-genius/dsh-plugin-runtime

Shared capability definitions and transport adapters for JustGenius DSH plugins. 适合作为JustGenius系列DSH插件的公共依赖和传输适配底座。

Package
@just-genius/dsh-plugin-runtime
Compatibility
Unverified
Harness peer range
0.1.1-rc.2
Cordis peer range
^4.0.1
Version
0.1.0
Last updated
Sep 24, 2026

Install

This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗

DSH-Plugs

A monorepo of plugins for DeepSeek Harness (DSH) — one folder = one plugin.

Plugins

@just-genius/dsh-codex

Side Chat, Terminal, and Git tab types for DSH's official right Sidebar. Files use DSH's built-in packages by default, with the retained custom preview available from Codex settings; the Warp-style terminal is backed by a real login-shell PTY. Optional: pin the newest question while scrolling, and drain a session's full history on open.

@just-genius/dsh-debug-mode

Cursor-style debug mode: /debug, a red Debug chip, a Debug Logs dock above the composer, and a reproduction-steps card with Proceed / Mark as fixed. Instrumentation goes through a workspace helper under .dsh/debug/; the dock can be cleared; runtime lines are mirrored to .dsh/debug/debug.log. Mode/wait stay in process memory for the live session only (not written to the durable session log).

@just-genius/dsh-flow

Leader-plans / subagent-executes orchestration, off until you select or run /flow. Once on, the main agent only plans — it lays work out as a DAG with flow_plan, each node is dispatched to its own child agent, and it reshapes the graph mid-flight with flow_patch (retry with a revised prompt, skip, insert a corrective step) as results land. The execution guard allows the Leader to call only flow_plan, flow_status, flow_next, flow_patch, and flow_confirm; investigation and execution are delegated to children. A dedicated Flow tab in the right sidebar draws the live graph with React Flow: node colour = status, edges = dependencies, click a node for its brief, result, and failure reason. Select /flow in the command menu to enable the mode and open the tab. The composer shows a Flow chip; click it or use /flow off to leave and cancel running children.

@just-genius/dsh-multi-repo

Multi-folder workspaces (Codex-style, no git scan): add folders one by one, pick one as the primary — the official workspace, session cwd, and workspace-write scope — while the rest stay readable and coordinatable. Bindings live in ~/.dsh/multi-repo/projects.json and are injected into the system prompt.

@just-genius/dsh-workspace-plus

Workspace enhancement that supersedes installing dsh-multi-repo plus a row-menu plugin together: attach multiple folders to one workspace (primary folder is the official cwd / workspace-write scope), and add double-click / right-click menus on workspace and session rows — pin, rename, unread, archive, fork, open folder. Bindings live in ~/.dsh/workspace-plus/bindings.json. Session menus do not offer permanent delete.

@just-genius/dsh-memory

Global markdown memory: Settings → Memory for manual CRUD, memory_propose for AI writes that wait for user confirmation, and enabled entries injected into the system prompt. Stored under ~/.dsh/memory/ as index.json + entries/*.md.

@just-genius/dsh-computer-tools

Settings → 浏览器与桌面: one card per capability — Browser Use (Playwright MCP) and Computer Use (Cua MCP or Native) — each with its own save. Saving writes a managed cordis.patch.yml insert; defaults work out of the box and the knobs live under 高级选项. The capability packages are separate opt-in installs, so a card whose packages are absent offers 一键安装 (with a copyable command as fallback). It does not restart the host or drive the computer. Needs dsh-plugin-config.

@just-genius/dsh-sync

GitHub Device Flow + secret Gist config sync: Settings → Sync pushes/pulls settings.yaml and the web plugin list (portable specs + cordis.patch.yml) with no self-hosted sync server. State lives in ~/.dsh/sync/state.json.

@just-genius/dsh-desktop-update

Update badge for DSH-Desktop next to the sidebar Settings button, driven by the window.dshDesktop Electron bridge. App updates jump to GitHub Releases; DSH runtime updates install in place. Renders nothing in a plain browser.

@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), plus a per-model default thinking strength and typeable capacity combos — the controls the stock page punts to settings.yaml.

@just-genius/dsh-notify-jump

Click a dsh-notification system banner to focus the window and open that session; when the DSH-Desktop bridge is present it routes through window.dshDesktop.notify so click-to-jump survives the Electron shell. Also notifies on the rising edge of approval / ask / plan-review waits.

@just-genius/dsh-session-archive

Settings → 会话归档: archived sessions grouped by workspace, with a confirmed delete. The sidebar keeps its one-click 归档会话 entry.

@just-genius/dsh-plugin-config

Settings → 插件 → 插件扩展 adds a tab alongside DSH's official plugin pages for Cordis npm plugins (awesome-dsh-plugin marketplace, profile inventory, and npm updates) and Agent capability packs (builtin catalog → ~/.dsh/agent-plugins). Shared top search. Agent packs mount hosted MCP tools/skills on enable without a DSH restart; Cordis installs and updates require a restart. The official Plugin list and the DSH v0.1.6-alpha.2+ sidebar plugin manager remain available.

@just-genius/dsh-quick-notes

随手笔记: floating sticky-note cards over the shell, with a search overlay (Mod+Shift+F; Mod+Shift+N opens a new note). Cards are WYSIWYG — # becomes a heading as you type, - [ ] a real checkbox, a GFM table stays an editable table — while the note on disk stays plain Markdown. A model round mints a title and up to 3 tags; renaming by hand freezes further AI overwrites. Settings → 随手笔记 manages the library (search, tags, pin / archive / delete, bulk actions). Notes are global rather than per-workspace, under $DSH_HOME/quick-notes, and every write is atomic (temp file + rename).

dsh-synapse

A visual, non-linear conversation workspace (vendored from liangmianya/dsh-synapse 0.4.1): the sessions, follow-ups, and forks of one workspace drawn as a draggable, zoomable map, reached from the top-level 会话地图 switch and served at /synapse. DSH's session log stays the single source of truth — Synapse projects committed events only, connects cards by the real fork edges instead of building a second history, and keeps its canvas layout in $DSH_HOME/synapse/, so deleting that directory never deletes a session. A card can also save its answer into a 随手笔记 note. Web profile only, reusing the existing DSH server. It is the one plugin that is plain root-level JS (index.js / client.js / app.js, built with node --check) — no @just-genius scope, no shared runtime, no typecheck.

@just-genius/dsh-whale-girl

Desktop pet (whale-girl). In a plain browser it is the in-page companion; in DSH-Desktop it opens a transparent always-on-top overlay via window.dshDesktop.overlays so the pet sits on the OS desktop.

Shared packages

packages/runtime (@just-genius/dsh-plugin-runtime) is the only package that directly adapts official DSH host/client APIs. All plugins depend on this boundary instead of importing @deepseek-ai/* packages or pinning their versions independently.

packages/agent-plugin (@just-genius/dsh-agent-plugin) is the pure logic for Agent capability packs: manifest validation, variable substitution, hosted MCP HTTP, OAuth, and install/enable/disable state. Host UI lives in dsh-plugin-config.

packages/ui (@just-genius/dsh-plugin-ui) ships DSH --dsw-* theme tokens plus React primitives (Button, Input, Menu, Modal, Markdown, confirmation and toast UI) and settings chrome. Plugins bundle it at build time; standalone apps (e.g. Vellum) can depend on it via file: / npm and call installTheme() once at boot. See packages/ui/README.md.

Official DSH contracts are pinned at the shared boundary to the newest tested published APIs (0.1.1-rc.2 at this migration).

Repository layout

DSH-Plugs/
├── package.json          # root workspace (shared build/type toolchain)
├── pnpm-workspace.yaml   # packages: ['plugins/*', 'packages/*']
├── tsconfig.base.json    # shared TS config
├── packages/
│   ├── runtime/          # @just-genius/dsh-plugin-runtime
│   ├── agent-plugin/     # @just-genius/dsh-agent-plugin (Agent pack logic)
│   └── ui/               # @just-genius/dsh-plugin-ui
└── plugins/
    └── 
/         # one plugin per folder

What a plugin is

A plugin is a Cordis plugin npm package split in two halves:

HalfSourceOutputRole
nodesrc/index.tslib/index.jsHost entry (usually an empty apply for pure UI plugins)
browsersrc/client/index.tsxlib/client.jsBrowser entry, registered via window.__ModuleLoader__.load({ id, factory }), mounting React UI with ctx.slots.register in apply

Two key declarations in package.json:

  • dsh.client — declares the browser-side injection (inject lists the client package names it depends on; platform: web).
  • dsh.bundle.patch — points at cordis.patch.yml, so installing the package automatically inserts its loader row into the profile.

Develop

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

Before creating a plugin, follow the dependency rule in AGENTS.md.

Installing a plugin

# Link a local folder into the profile (relative paths anchor to the current directory)
dsh plugin --profile web add ./plugins/dsh-codex

Because the package declares dsh.bundle.patch, it joins the profile's bundle layer automatically on install; restart DSH web (a plain refresh is not enough for bundle-stack changes).

Uninstall:

dsh plugin --profile web remove @just-genius/dsh-codex