DSH ships the runtime — sessions, agents, tools, a web GUI — and leaves the product decisions open. dsh-pro makes them: a file artifact panel, git review, web search that needs no API key, conversation rewind, scheduled routines, deep research. The result covers roughly the ground Claude Code or Codex does, assembled entirely from plugin seams rather than a fork, so upstream stays upgradeable.
Needs Node. The harness itself comes from npx, so there is nothing to
install first.
git clone https://github.com/rodrigobaron/dsh-pro
cd dsh-pro
./install.shThe installer builds every plugin under plugins/, installs it into
~/.dsh/profiles/node_modules, and regenerates the profile patch. It creates no
agent preset and does not change which preset is default. It is idempotent — the
patch is written whole on every run, so re-running never accumulates duplicate
rows. Set DSH_HOME to target a different harness home.
npx @deepseek-ai/dsh webServes at http://127.0.0.1:3080.
After re-running the installer, restart that process and force-refresh the browser once — the client-side plugins are cached, so a plain reload serves the previous build.
Settings → Updates installs the newest release: the tarball CI built, checksum-verified, swapped into the profile with the previous install kept as a backup. Restart afterwards — see updates.
To update from a clone instead, git pull && ./install.sh.
Interface
| Plugin | What it adds |
|---|---|
tool-file-canvas |
the show_file tool and the contained GET /canvas/file reader |
client-ui-file-canvas |
the artifact panel and its renderers |
client-ui-layout-wide |
a wide, resizable details column |
git-review |
a Git tab: review the diff, stage, discard, commit, push |
context |
a context dashboard tab and the /context command |
archived-sessions |
a session manager in Settings: browse, archive, delete |
notification |
desktop notifications when a session finishes a turn |
updates |
install new releases from GitHub, verified and reversible |
Agent capabilities
| Plugin | What it adds |
|---|---|
search |
web search over ten free engines with automatic fallback, no API key |
browser |
drive a real Chromium tab: open, read, click, fill, screenshot |
deep-research |
/deep-research <topic>: a controlled multi-round search loop |
Conversation control
| Plugin | What it adds |
|---|---|
rewind |
a rewind button on every user message: drop it and everything after |
rewind-picker |
the /rewind command: pick the message to rewind to from a list |
routines |
scheduled agent routines: a cron engine that fires real sessions |
at-file |
@path references in the composer, without reading the file |
Each plugin is self-contained. Nothing depends on reference/, which holds
upstream checkouts consulted while porting and is not distributed.
- Development — adding a plugin, the build contract, type-checking
- Language — English by default, and why that is not enforced
This repository stands on other people's work. Eight of its plugins began as someone else's, and the ones written from scratch were shaped by reading them.
- bowenliang123/dsh-context — the context dashboard and the
/contextcommand - Zephyr-vibe/dsh-archived-sessions — session management, disk accounting, and lineage
- omdsh-dev/dsh-at-file —
@pathreferences, and the pre-step injection patterndeep-researchborrows - DDDMUC/dsh-free-search — ten search engines with no API key, and the fallback chain behind them
- omdsh-dev/dsh-notification — desktop notifications and their rule engine
- omdsh-dev/dsh-recall — conversation rewind, and the user-bubble renderer it shadows to place a button there
- linxin666/dsh-timer-agent — the scheduled-agent engine, and its at-most-once firing discipline
- Clizo1209/dsh-playwright-browser — browser automation with semantic locators
Thanks also to NousResearch/hermes-agent,
whose cron design dsh-timer-agent follows and which therefore shapes
routines here, and to the
DeepSeek Harness team, whose
plugin seams made every one of these possible without a fork.
MIT, except where a plugin is derived from someone else's work. Those keep their upstream license and carry a NOTICE recording exactly what changed:
| Plugin | Upstream | License |
|---|---|---|
context |
bowenliang123/dsh-context | Apache-2.0 |
archived-sessions |
Zephyr-vibe/dsh-archived-sessions | MIT |
at-file |
omdsh-dev/dsh-at-file | MIT |
search |
DDDMUC/dsh-free-search | MIT |
notification |
omdsh-dev/dsh-notification | MIT |
rewind |
omdsh-dev/dsh-recall | MIT |
routines |
linxin666/dsh-timer-agent | MIT |
browser |
Clizo1209/dsh-playwright-browser | MIT |
