Plugin directory / Developer / dsh-fork-view
dsh-fork-view
Verified · install-tested on dsh an4nsi
What it does
DSH web plugin: replaces the native workspace browser in the left sidebar with a session tree in the style of pi-web by agegr.
Works — verified, early-stage project
DSH web plugin: replaces the native workspace browser in the left sidebar with a session tree in the style of pi-web by agegr. It installs cleanly and boots without issues in our testing. It's early-stage but functional.
“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
README
dsh-fork-view
English | 中文
DSH web plugin: replaces the native workspace browser in the left sidebar with a session tree in the style of pi-web by agegr — workspace → session → forks / subagents. Flat by default: forks-of-forks collapse into level-2 siblings; raise maxDepth to nest them for real.
| Sidebar | Hover actions |
|---|---|
![]() |
![]() |
Features
- Flat by default:
workspace → session, with fork rows and collapsible> Subagents (N)groups underneath. At the defaultmaxDepth: 2, forks-of-forks at any depth flatten into sibling rows at level 2 — setmaxDepth ≥ 3and they nest under their parent instead. - Subagent groups: each session/fork collects its subagents into a collapsible group, collapsed by default.
- Archive-friendly: archived sessions hide their whole group; descendants of archived nodes re-parent to the nearest surviving ancestor — no orphaned rows.
- Hover actions menu: Rename / Fork / Archive, matching the native dsh sidebar. Self-contained inline SVG + small popover; zero extra modules.
- dsh-native look: one muted vertical indent guide instead of tree elbows; all colors via dsh CSS variables, adapts to light/dark.
Install
Requires a DSH ≥ 0.0.1 web profile and Node ≥ 20.
From GitHub (pnpm / dsh)
One-liner via the dsh CLI (installs and auto-mounts — the plugin ships its own cordis.patch.yml; the CLI sees the dsh.bundle.patch declaration and appends it to the bundle stack, no profile file edits):
dsh plugin --profile web add github:an4nsi/dsh-fork-view # adjust profile name
Or manually with pnpm — inside your web profile directory (the one with package.json / cordis.patch.yml):
cd ~/.dsh/profiles/web # adjust to your profile path
pnpm add github:an4nsi/dsh-fork-view#main
# pnpm ≥ 10 asks to approve build scripts on first run: allow esbuild and
# dsh-fork-view's prepare; missed it? `pnpm approve-builds`, then check lib/ exists
The pnpm route also mounts the plugin row in the profile's cordis.patch.yml (the dsh CLI route already did):
- insert:
- id: dsh-fork-view
name: "dsh-fork-view"
# optional config, see "Configuration":
# config:
# maxDepth: 2
Restart dsh web (host-half change) and hard-refresh the browser.
Manual / development
git clone https://github.com/an4nsi/dsh-fork-view.git && cd dsh-fork-view
pnpm install # prepare hook builds lib/
pnpm test
Configuration
| Key | Default | Description |
|---|---|---|
maxDepth |
2 |
Levels to render. 1 roots only; 2 roots + direct forks + subagent groups; ≥3 actually nests fork-of-fork under its parent |
showSubagents |
true |
Render > Subagents (N) groups |
subagentsCollapsedByDefault |
true |
Initial open/closed state of subagent groups |
Config lives on the plugin row (YAML above); validated host-side by schemastery, forwarded to the client half.
Development
src/client/index.jsx client half: sidebar component (real JSX) → CJS bundle
src/index.js host half: schemastery Config + no-op apply (client-only plugin)
cordis.patch.yml dsh.bundle.patch layer: inserts the plugin row
build.mjs esbuild dual-entry build → lib/client.js + lib/index.js
tests/ model tests against the built bundle (mock jsx-runtime)
lib/ build output, gitignored; produced by prepare on install
pnpm run build && pnpm test
Credits
- pi-web by agegr — the original fork/subagent process tree this plugin reimplements for the dsh sidebar.
- The dsh web plugin surface (
__ModuleLoader__, client slots) that makes a drop-in sidebar replacement possible.
License
MIT © anansi & inogai
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install dsh-fork-view for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
This plugin is GitHub source (not published to npm) — install it straight from the repo:
Web profile:
dsh plugin --profile web add github:an4nsi/dsh-fork-view Headless (CLI) profile:
dsh plugin --profile headless add github:an4nsi/dsh-fork-view Test report
Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.

