Preface¶
The core philosophy of DeepSeek Harness (DSH) is “everything is a plugin”—the main session handles dialogue and tool calls, but “development-time contexts” such as file browsing, terminal, Git status, and sub-agent topology are often scattered across the system, requiring frequent window switching. The community has many interface enhancement plugins, among which DSH-better-sidebar is currently one of the most starred sidebar solutions: it doesn’t just stuff a few pages into a right sidebar, but turns the sidebar into a registrable, extensible service base. It includes built-in capabilities like file editing, terminal, Git, and sub-agent tasks, while opening up the same API for third-party plugins.
This article verifies information based on the plugin directory page and GitHub repository README, introducing this client plugin maintained by omdsh-dev: the problems it solves, its core capabilities, and how to install and get started.
What is This¶
DSH-better-sidebar (npm package name dsh-better-sidebar) is a sidebar workbench plugin for the DSH Web interface, classified as interface enhancement. In one sentence: an open sidebar base with built-in file rendering and editing, real terminal, Git panel, sub-agent task page, sidebar dialogue, and more, while exposing registerTab (register sidebar page) and registerFileViewer (register file viewer) extension points via the ctx.betterSidebar service for ecosystem plugins—its built-in 7 tabs and 6 viewers use the same API as third-party plugins, offering equivalent capabilities.
The project uses the MIT license on GitHub, with approximately 2800+ stars as of verification. It is listed in the DeepSeek Harness Plugin Library and SkillHub Plugin Directory, among other community sites; these directories are community-maintained and have no official affiliation with DeepSeek/High-Flyer, but serve as entry points for discovering and installing plugins.
Core Features and Highlights¶
File Workbench¶
The explorer supports lazy-loaded directory trees, with symlinks displayed based on their target type (directory symlinks can expand, invalid links are highlighted in red). Paired with the CodeMirror editor, it allows direct code read/write in the sidebar; images, Markdown (including Mermaid diagrams with strict secure rendering), HTML, PDF, and other formats support inline preview. Markdown preview also includes floating table of contents, README-level embedded HTML (sanitized via DOMPurify), and other features.
Real Terminal¶
Based on xterm.js + node-pty, it provides a real shell (not an emulator), supporting reconnection and transcript replay. Shell path and parameters can be configured in the settings page; when relevant options are enabled, it can also inject terminal_* tools for the model, allowing the Agent to execute commands directly in the terminal.
Git Panel¶
Provides staging, committing, reverting, and history viewing operations; changed files can open a VSCode-style diff tab for line-level comparison. The workspace container can automatically discover sub-repositories and display a repository selector, supporting linked worktree change detection.
Embedded Browser and Background Tasks¶
The embedded browser supports multi-tab browsing, with content running in a sandboxed iframe; external links default to protocol-based redirection (HTTP opens in the sidebar, HTTPS can use the system browser, configurable in settings). The background tasks page displays sub-agent topology and background task lists (exit codes, real-time output, forced termination).
Sidebar Dialogue (Beta)¶
Codex-style sidebar threads: each dialogue is an independent tab, inheriting the main session’s full context and running independently without polluting the main session; it supports continuous follow-up and can be promoted to a top-level session with a “Save as New Session” button.
Dual Workbench and Free Window¶
The right sidebar and bottom panel can be expanded simultaneously; dragging tabs can split/merge panels (across panels); on narrow screens, they automatically merge into a full-width drawer. Newer versions also support dragging tabs to the main session area to become movable, resizable floating windows, which can be docked back to the sidebar.
Service-Based Extension and Ecosystem¶
From v0.4.0, it exposes the ctx.betterSidebar service. Other plugins, after injecting via inject: ['betterSidebar'], can register custom sidebar pages or file viewers. The GitHub topic dsh-better-sidebar already has 28+ ecosystem plugins (Office preview, video preview, Jupyter Notebook, SSH tunnels, etc.), with a built-in recommendation directory in the settings page for one-click copy of installation commands.
Other notable features: session-level layout persistence, declarative settings (toggle each sidebar card individually), on-demand loading (core loads ~325KB at startup, heavy dependencies like terminal/editor/Mermaid are fetched as needed), and interface text following DSH’s language (zh/en) switch.
Installation and Enabling¶
Prerequisites: DSH installed (dsh web runs normally). If installing via the npm channel, Node.js ≥ 20 and pnpm ≥ 10 are also required. The plugin supports DSH versions 0.1.0-rc.8, 0.1.1-rc.1, and 0.1.1-rc.2.
Method 1: Plugin Directory Recommended Command (GitHub Source)¶
In the DeepSeek Harness terminal, run:
dsh plugin add github:omdsh-dev/DSH-better-sidebar
For reproducible installation, you can pin the commit hash:
dsh plugin add github:omdsh-dev/DSH-better-sidebar#<commit>
Method 2: npm Channel (README Recommended)¶
dsh plugin --profile web add dsh-better-sidebar@latest
cd ~/.dsh/profiles/web && pnpm approve-builds --all
dsh plugin --profile web add dsh-better-sidebar@latest
On first installation, pnpm 11 may block the node-pty build script causing failure—this is normal; run pnpm approve-builds --all in the profile directory to approve and retry.
After installation, hard refresh the browser (Cmd/Ctrl+Shift+R) to see the sidebar. DSH supports hot reloading for client changes, so restarting the process is generally unnecessary.
Security Note: The plugin runs with the permissions of the current dsh process and may execute build scripts during installation. Please review the GitHub source repository and MIT license before installation to ensure the source is trustworthy.
Typical Usage Examples¶
Daily Use¶
- Start
dsh weband open any session. - Click the right sidebar toggle to expand the workbench; in the settings page “Sidebar Cards,” enable tabs like files, terminal, Git, browser, and sidebar dialogue as needed.
- Click a file in the explorer to preview or edit; save with
Ctrl/Cmd + S, commit in the Git panel withCtrl + Enter. - Drag a tab to the panel edge to split the layout; the
@Filebutton at the end of the floating line can reference the file path in the input box.
Third-Party Plugins Registering Sidebar Pages (Developers)¶
The following example from the official README demonstrates how to register custom tabs and file viewers via ctx.betterSidebar:
import type {} from 'dsh-better-sidebar'
export const inject = ['betterSidebar']
export function apply(ctx: Context) {
ctx.effect(() => ctx.betterSidebar.registerTab({
id: 'my-plugin:db', title: 'Database',
component: ({ scope }) => <DbView sessionId={scope.sessionId} />,
}))
ctx.effect(() => ctx.betterSidebar.registerFileViewer({
id: 'my-plugin:csv', exts: ['csv'], fetchStrategy: 'custom',
load: async (path, scope) => parseCsv(await fetchText(scope, path)),
component: ({ customData }) => <CsvGrid rows={customData} />,
}))
}
For full integration documentation, see AGENTS.md and docs/external-plugin-guide.md in the repository.
Use Cases and Considerations¶
Who is this for:
- Developers who daily use the DSH Web interface to write code, run commands, and view Git changes.
- Users who want a one-stop sidebar workflow for “view file → edit code → run terminal → commit Git.”
- Plugin authors who need to develop custom sidebar pages or file viewers for the DSH ecosystem.
Considerations:
- The plugin accesses the filesystem, starts terminals, and executes Git commands with the dsh process permissions; review the source code before installation.
- The Git panel does not support push/pull/fetch; Markdown preview does not reflect unsaved drafts; dragging terminal tabs across panels remounts them (shell reopens).
- The embedded browser is limited by sandboxing and
X-Frame-Options; some sites cannot be embedded and must be opened via the system browser. - If enabled simultaneously with
dsh-web-uifamily right-side panels (aionui-panel), choose one in settings to avoid dual mounting. - On Windows, the terminal depends on precompiled binaries for
node-pty; if loading fails, follow the terminal banner instructions to runpnpm approve-builds --all && pnpm rebuild node-ptyin the profile directory and restart DSH.
Conclusion¶
If you’re already using DeepSeek Harness but often feel “a development panel is missing beside the dialogue area,” DSH-better-sidebar is worth trying: it consolidates high-frequency capabilities like files, terminal, Git, and sub-agents into a customizable sidebar, while opening extension interfaces to the community, with the ecosystem plugin count still growing rapidly.
- Plugin Directory Page: deepseek-harness-plugin.com
- SkillHub Directory: skillhub.cn
- GitHub Repository: github.com/omdsh-dev/DSH-better-sidebar