deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
A monorepo of plugins for the DeepSeek Harness (DSH) — one folder = one plugin.
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.

The consolidated Codex shell: settings, Codex-style navigation, Cursor-style per-turn Worked for collapsing, the right-side side.panel host, a Warp-style Terminal panel backed by a real login-shell PTY at /dsh-codex/terminal/ws, and a read-only commit-graph panel that walks git log at /dsh-codex/git-graph.
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.

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).
A DSH-Desktop update badge next to the sidebar Settings button, driven by window.dshDesktop (Electron preload bridge). Idle state is a quiet question-mark that opens versions and auto-check gates; when an update is available it turns into an accent arrow. App updates jump to GitHub Releases; DSH runtime updates install in place (pnpm) and ask for a restart. Skip a version and the prompt returns only when a newer one appears. In a plain browser (no bridge) it renders nothing.

Turns the web surface into a WeChat-style messenger: chat list, green/white bubbles, and an agent that texts short progress updates while it works. Switch back from 我.
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
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 (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.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/
plugins/* folder and rename it to your plugin name.package.json's name (keep the @just-genius/dsh-* prefix).src/index.ts (node half) and src/client/index.tsx (browser half).pnpm build.# 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 CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。