seek://map/dsh-better-sidebar
dsh-better-sidebar
#sidebar #workbench #terminal #git
TL;DR
omdsh-dev's service-style sidebar framework and ready-made workbench: file workbench, embedded browser, xterm real terminal, Git plus per-turn file-change views, beta side conversations — with the same ctx.betterSidebar registration API opened to third-party plugins.
The web UI gains a real IDE left flank: a service-style sidebar framework whose built-in set — file workbench with CodeMirror editing, sandboxed embedded browser, xterm terminal wired to node-pty, Git and per-turn file-change views, beta side conversations — is registered through exactly the same ctx.betterSidebar API it publishes to third-party plugins. The README's own troubleshooting table is refreshingly honest about the sharp edges (the pnpm build-script block on first install, double-mount conflicts with aggregator bundles like @linxin666/dsh-web-ui-all), and both facts are recorded in this entry.
Facts
- install
- dsh plugin --profile web add dsh-better-sidebar@latest
- license
- MIT
- note
- 首次安装会被 pnpm 11 拦截 node-pty 构建脚本:在 profile 目录执行 pnpm approve-builds --all 后重跑安装(README 常见问题表)。
Key points
- Service-first: built-in tabs and third-party plugins register through the same ctx.betterSidebar API (registerTab / registerFileViewer) with equal capability — per its README, 28+ ecosystem plugins already exist
- A real terminal on xterm.js + node-pty with reconnect replay; optional terminal_* tools for the model, plus sidebar_open so the model can open files or pages in the sidebar itself
- Dual file-change views — Git (diff, history, staging) and per-turn model read/write tracking — with unified diff rendering; beta side conversations inherit the full main-session context and run separately
- Distributed on npm: the stable line rides @latest (v0.17.1) while DSH 0.1.2-alpha.x is served by an alpha dist-tag — per its README, the support badge verified against alpha.3
- Right sidebar plus bottom-panel dual workbench with drag-split tabs, float-out windows and per-session layout persistence; the interface follows the DSH language setting (zh/en)
FAQ
Why does the first install fail?
pnpm 11 blocks the node-pty build script. Per the README, run pnpm approve-builds --all in the profile directory (~/.dsh/profiles/web) to allow it, then rerun the install command.
Which DSH versions are supported?
Per the README's support badge: the alpha dist-tag (v0.18.x) targets DSH 0.1.2-alpha.x, verified against alpha.3; stable users stay on @latest (v0.17.1), which no longer supports 0.1.0-rc.8 through 0.1.1-rc.2.
I see two sidebars — what now?
That is a double mount: remove the leftover manual insert block in ~/.dsh/profiles/web/cordis.patch.yml (documented in the README's troubleshooting table); since 0.13.x the plugin also yields automatically when an enabled same-package mount is detected.
Official references