dsh-work-x
v0.6.0
Published
Capability suite for DeepSeek Harness: Pi MCP manager, subagents, side conversations, memory, background tasks and credential-dependent image generation.
Maintainers
Readme
dsh-work-x
One install that turns a stock DeepSeek Harness into a batteries-included agent workstation.
dsh plugin --profile web add dsh-work-x dsh-better-sidebarRestart dsh (plugins mount at startup). One line, two packages: the suite,
and the sidebar its Memory/Tasks/MCP workbench tabs live in — the sidebar IS
the primary form of the suite's product UI. (Headless/CLI profiles can drop
dsh-better-sidebar; DSH has no way yet for one plugin to auto-install a
companion — proposed upstream —
which is the only reason this is two names instead of one.) That is the entire setup: the suite
carries the pi2dsh engine and six
capability packages, with pinned versions and a
version-specific acceptance record.
Suite 0.6.0 targets pi2dsh 0.27.0 and DSH 0.2.1-rc.2. Earlier DSH hosts
remain on their matching historical suite/engine release.
一条命令,把官方 DSH 变成开箱即用的全能 agent 工作台。装完重启 dsh 即可; 组件版本固定;本代适配 DSH 0.2.1-rc.2,各项实测范围见发布验收记录。
What the Pi packages add
| Capability | Pi package behavior on DSH |
|---|---|
| MCP | Lazy proxy with on-demand search/describe, in-session manager, OAuth flows, MCP Apps, prompts, elicitation, sampling and cancellation — acceptance matrix |
| Subagents | Pi's Agent tool, background delegation, steering, resume, parent cancellation, per-child model and thinking options |
| Side conversations | /btw <question> keeps the side answer outside the main context; an in-window panel supports explicit injection |
| Image generation | Codex-backed image tools with inline rendering; requires a Codex credential and separate live acceptance |
| Persistent memory | memory_add/memory_search and /memory-*, with web browse/search and pin/unpin controls |
| Background tasks | Pi bg_run/bg_logs, plus a web tasks chip with output and kill controls |
DSH also has native MCP, subagent and job capabilities. This suite exposes the original Pi packages through those host services; this table is not a claim that the current host lacks equivalent features.
The suite: pi-mcp-adapter ·
@tintinweb/pi-subagents ·
pi-btw ·
@crazygit/pi-codex-image-gen ·
pi-hermes-memory ·
pi-background-tasks,
running unmodified through the pi2dsh compatibility engine.
pi-hermes-memory builds a native SQLite store (better-sqlite3); if the
install stops with ERR_PNPM_IGNORED_BUILDS, run pnpm approve-builds inside
the profile directory (select better-sqlite3) and re-run the add — that gate
is the host's own supply-chain approval, not an error. Vision companion
routes are off in this suite; subscription logins stay whatever your DSH
profile already has.
Web first
dsh-work-x targets dsh web (and the desktop shells that wrap it) as its primary
surface. The automated regression drives a real browser against a clean
install and asserts each bundled package's own command is offered by the
composer — not that a file exists somewhere.
dsh plugin --profile web add dsh-work-x dsh-better-sidebar
dsh web --port 5179dsh-better-sidebar is the
community sidebar the suite's product UI seats into: its Tasks page shows your
subagents natively (click through to steer or stop them), and dsh-work-x adds an
MCP tab there — this session's servers grouped by layer (project /
global), with per-project enable/disable. A machine-wide view of the same
servers lives in Settings → MCP and works with or without the sidebar.
With the sidebar installed, Memory and Jobs tabs appear there too —
the same panels in workbench form. Without
dsh-better-sidebar everything still runs — Settings → Memory and the tasks
chip carry the same functionality. (DSH has no way yet for one plugin to declare a companion bundle —
we've proposed one —
so the install command names both.)
Match the sidebar to your DSH host as well. Suite 0.6.0 does not claim compatibility with the historical 0.1.x/alpha host generations.
Memory & background tasks
Primary form — the sidebar. With the one-line install above, the right sidebar (VSCode-style, per session) carries the suite's workbench tabs: open the + next to the tab strip and add Memory or Jobs — they sit beside Files, Terminal, Source Control, and stay while you chat.
- Memory tab — This project's memories first (named as such), then
other projects, global, and about-you groups, with search. The Pinned
rules section manages standing instructions injected into every turn:
pin from the input, unpin per entry, hard budget shown. Writes run
pi-hermes-memory's own/memory-pincommand, so the store's single-writer anti-injection design holds; the memory list itself is read-only by design — edits and deletions go through the agent's memory tools so store and search index never drift. - Jobs tab — each background job's status, runtime and bytes; show
output streams a job's output while it is still running; Kill runs the
package's own
/kill.
Without the sidebar (headless-leaning installs) the same functionality stays reachable: Settings → Memory is the full memory page, and while jobs run a small clickable "N tasks running" chip joins the host's own status row under the composer — click for the same panel; no jobs, no chip. The side-chat dot stays the only floating piece either way.
Verified by the automated regression end to end on clean installs: the memory surfaces show a fact that exists only in the plugin's store, a pin round-trips through STANDING.md and back out, and the kill provably ends a 180-second job early — asserted from the store files and task snapshots on disk, not from page text.
Configuration
Override engine config in your profile's user patch layer
($DSH_HOME/profiles/<p>/cordis.patch.yml), targeting the row by id — never
insert a second row:
- id: pi2dsh
config:
exclude: ["pi-btw"] # drop a suite member you don't wantPlugin-specific settings follow each plugin's own environment variables and slash commands, as documented by the plugin.
How it works
dsh-work-x is a normal DSH bundle. Its patch mounts the pi2dsh engine (re-exported
through this package, so it resolves under pnpm's isolated layout), and the
engine reads this package's pi2dsh.suite manifest — an explicit list, one
dependency-hop from your profile — and mounts each member exactly as if you
had dsh plugin add-ed it yourself. No directory scanning, no forks, no
patched DSH internals; remove it with dsh plugin remove dsh-work-x and the whole
suite is gone.
Relation to pi2dsh
dsh-work-x is the curated product; pi2dsh is the engine and remains independently installable for anyone who wants to pick their own Pi packages. Anything verified for pi2dsh is inherited here at the same version pins.
