Requirements
The README requires an existing DSH installation where dsh web runs successfully, plus Node.js ≥ 20 and pnpm ≥ 10. The web profile is expected at ~/.dsh/profiles/web; running dsh web initialises it if it does not exist. On Windows, the terminal depends on a compatible prebuilt node-pty binary. If none exists for the installed Node version, VS Build Tools may be required.
Installation scripts and package mounting
The repository provides scripts/install.sh for macOS/Linux and scripts/install.ps1 for PowerShell. The scripts prepare pnpm settings, register the package through the DSH plugin mechanism, detect dsh.bundle.patch, and mount the bundle through dsh.profile.bundles. They also remove an old manual better-sidebar mount from cordis.patch.yml to avoid duplicate sidebars. The scripts support a version argument, --restart, and --dry-run; PowerShell uses -Version, -Restart, and -DryRun.
Configuration and behaviour
Settings are exposed as independent cards, with secondary options in a gear dialog. HTTP links open in the sidebar and HTTPS links in the system browser by default; these destinations can be adjusted separately. Position compatibility mode is off by default and can reserve 0–120px above the sidebar for a Windows native title bar. The interface follows the DSH zh/en language and loads heavy terminal and editor dependencies on demand.
Plugin service API
Third-party plugins use ctx.betterSidebar. The documented service includes registerTab, registerFileViewer, getSnapshot, subscribeState, updateTab, activateTab, and openFile. Tabs support onOpen, onActivate, onClose, badges, meta, urlTarget, and plugin-owned settings through pluginToggles and render. The terminal is a real shell backed by xterm.js and node-pty; reconnection can replay disconnected output, and terminal_* tools are optional.
Written from the project's own documentation and kept in sync with it. Where the two disagree, the source is authoritative — read the README on GitHub