DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-better-sidebar

Better Sidebar

Better Sidebar for DSH — file tree, editor, changes, tasks and side chat in one column, separate for every conversation. Also exposes a service other plugins use to register sidebar tabs and file viewers.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:omdsh-dev/DSH-better-sidebar#b0e0fab50e68f54b07a1fc1e7898030409c7d979
READMECompatibilityVersions
File tree with git colorsContext menu: Open with + Zip and downloadGit: changes and commit graph with tagsMarkdown + Mermaid previewTasks: subagent topologySide ChatDual workbench

Compatibility and provenance

Better Sidebar is published as dsh-better-sidebar and currently resolves to version 0.28.2. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
11/4/2026

Versions

0.28.2stable
10/27/2026
0.28.1stable
10/26/2026
0.28.0stable
10/17/2026
Show 37 more versionsCollapse versions
0.28.0-alpha.0prerelease
10/17/2026
0.27.0stable
10/16/2026
0.26.1stable
10/16/2026
0.26.0stable
10/13/2026
0.25.0stable
10/9/2026
0.24.1stable
9/28/2026
0.22.1stable
9/28/2026
0.22.0stable
9/27/2026
0.21.1stable
9/23/2026
0.21.0-rc.1prerelease
9/23/2026
0.19.1stable
9/11/2026
0.19.0stable
9/10/2026
0.19.0-alpha.1prerelease
9/9/2026
0.18.1stable
9/8/2026

Related plugins

Loading related plugins…

Latest
0.28.2
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
98,358
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
0.18.0stable
9/3/2026
0.19.0-alpha.0prerelease
9/2/2026
0.18.1-alpha.0prerelease
9/1/2026
0.18.0-alpha.0prerelease
8/30/2026
0.17.1stable
8/28/2026
0.17.0stable
8/26/2026
0.16.1stable
8/25/2026
0.16.0stable
8/23/2026
0.15.2stable
8/22/2026
0.15.1stable
8/22/2026
0.15.0stable
8/21/2026
0.14.2stable
8/21/2026
0.14.1stable
8/20/2026
0.14.0stable
8/19/2026
0.13.1stable
8/18/2026
0.13.0stable
8/17/2026
0.12.3stable
8/16/2026
0.12.2stable
8/15/2026
0.12.1stable
8/14/2026
0.12.0-beta.1beta
8/14/2026
0.11.0stable
8/14/2026
0.10.3stable
8/13/2026
0.10.2stable
8/13/2026

Related plugins

More verified plugins in ui-customization.

Plugin Wallpaper Enginedsh-plugin-wallpaper-engineWallpaper Engine backgrounds for the DSH web GUI: render your local Wallpaper Engine Video/Web wallpapers behind the chat, Scene wallpapers as extracted static frames, with iOS-style liquid glass, adjustable scrim/border/blur, and a customizable accent coDafeiyudsh-dafeiyuA desktop-native BigFish companion driven by DeepSeek Harness session events.Codex Ui@michengai/dsh-codex-uiDSH Codex UI — 为 DeepSeek Harness 提供极速历史召回、全屏设置皮肤、原生物理毛玻璃换肤、模块化侧栏与桌面原生窗口菜单 · Input enhancement, settings skin, native glass theme, modular sidebar, and desktop titlebar menu for DSHClaude Styledsh-claude-styleClaude Code Desktop theme for DeepSeek Harness (dsh) web GUI — visual & interaction overhaul

README

dsh-better-sidebar

A dual workbench for DSH: native right sidebar + self-drawn bottom panel, with the ctx.betterSidebar service open to every plugin

🌏 中文 · English

✨ Features

🗂️ File Management
Lazy-loading tree, git status colors, live directory watch, global search, drag-and-drop upload, multi-select batch actions, dual-source "Open with" menu.
File tree with git colors
Context menu: Open with + Zip and download
🌿 Git
Source Control (Merge / Staged / Changes groups, message box with Generate, branch + sync footer) plus a this-session AI-changes lens, with a read-only commit graph (lanes, branch and tag badges, branch filter, commit details) in one tab.
Git: changes and commit graph with tags
📝 Editable Editor & Previews
An editable CodeMirror (the stock preview is read-only), Markdown + Mermaid + floating outline, sandboxed HTML preview, .jsonl record cards, paged preview for huge files, streaming transfers with no size caps.
Markdown + Mermaid preview
🧩 Tasks
Live subagent topology (workflow graph / tree modes) + background task list: exit codes, live output, force-kill.
Tasks: subagent topology
💬 Side Chat (beta)
Codex-style side threads: inherit the full parent context and run independently, realtime push, visible & revocable queue, per-thread model selection, one-click promotion to a top-level session.
Side Chat
🖥️ Bottom Workbench
A self-drawn bottom panel that coexists with the native right sidebar: drag-to-split panes, multiple terminal tabs, per-session persisted layout.
Dual workbench

Also: 📂 the sidebar_open tool lets the model open the sidebar itself · ⚡ ~325KB core at startup, heavy chunks load on demand · 🌏 i18n follows DSH · 📱 narrow screens switch to a full-width drawer

🌿 Git Graph (read-only commit graph)

Switch to Git Graph at the top of the Git panel for commit nodes, forks and merge edges across local branches, remote-tracking branches and HEAD. The branch selector only filters history — it never checks out or fetches; each commit is one line (lane edges + ref pills + subject), hover shows the author and short hash, and selecting one opens its full message and diff in the bottom pane. History loads in pages; reference changes during pagination prompt a refresh; reads are bounded (200 commits per page, offset 10,000, 1,000 branches) and report an explicit error past a limit. Lightweight and annotated tags appear on commits in the graph, rows and details use neutral tag pills, and tag changes invalidate pagination. Tag decorations keep the first 5,000 tags by ref name, further bounded by an 8 MiB complete-line output prefix; excess tags are omitted without failing the graph.

🧭 dsh-context diagnostics (optional)

With the dsh-context plugin installed, three places offer a one-click jump into that conversation's Context view: an agent node's detail card on the Tasks page, a background job's output window (the job's real owner session — never merely the session its row was watched under), and the session header. The entries appear only while dsh-context's Context page is actually registered: a deployment without it (or with that page hidden) shows no control at all, and while one jump is in flight every entry point is disabled. A failed jump is reported once, in a dismissible alert at the frame's bottom edge; nothing is polled while idle.

🚀 Installation

dsh plugin --profile web add dsh-better-sidebar@latest

Then hard-refresh the browser (Cmd/Ctrl+Shift+R). Requires DSH 0.2.1-rc.1+.

Compatibility warning — match the plugin to the host line. As of 2026-10-26, DSH's npm latest is 0.2.1-rc.2, so the command above installs the compatible v0.28.2. Hosts still on 0.2.0-rc.2 must pin dsh-better-sidebar@0.26.1 (and should upgrade the host to 0.2.1-rc.2 first); DSH 0.2.1-alpha.5 users must pin dsh-better-sidebar@0.28.0-alpha.0. The marketplace installer picks the plugin's latest regardless of host version, so an old host gets a version-rejection error — upgrade the host or pin the version explicitly. The two packages' latest tags are independent.

Pick the plugin version for your DSH version
Your DSH versionInstall command
0.2.1-rc.1+dsh plugin --profile web add dsh-better-sidebar@0.28.2
0.2.1-alpha.5dsh plugin --profile web add dsh-better-sidebar@0.28.0-alpha.0
0.2.0-rc.2dsh plugin --profile web add dsh-better-sidebar@0.26.1
0.2.0-rc.1dsh plugin --profile web add dsh-better-sidebar@0.24.1
0.1.7-rc.1 ~ 0.1.7 stabledsh plugin --profile web add dsh-better-sidebar@0.22.1
0.1.7-alpha.xNo compatible release — upgrade DSH to rc.1 first
0.1.6 and earlier (incl. the 0.1.5 line)dsh plugin --profile web add dsh-better-sidebar@0.19.1

Always pin exact versions for older releases (latest moves forward with each new stable). Replace web with your own profile name.

Other ways to install

Let DSH install it for you — paste this prompt into any DSH session:

Install the dsh-better-sidebar plugin (a sidebar workbench for DSH):
1. Confirm DSH is 0.2.1-rc.1 or newer, then run dsh plugin --profile web add dsh-better-sidebar@0.28.2
2. Remind me to hard-refresh the browser (Cmd/Ctrl+Shift+R) afterwards
If something fails, check the FAQ table in https://github.com/omdsh-dev/DSH-better-sidebar README first.

One-line script — clone this repo and run bash scripts/install.sh 0.28.2 (macOS / Linux / Windows Git Bash; ./scripts/install.ps1 -Version 0.28.2 for native Windows). It handles installation + bundle registration.

Updating: just re-run the install command, then hard-refresh the browser.

FAQ
SymptomCause & fix
Ignored build scripts errorpnpm 11 blocked a transitive dependency's build script. Run pnpm approve-builds in the profile directory (~/.dsh/profiles/web) — this plugin itself has no build-script dependencies.
minimum release age / version younger than 24hThe release is less than 24 hours old. Wait 24h or re-run (pnpm auto-adds minimumReleaseAgeExclude).
"Profile directory not found"Run dsh web once to initialize ~/.dsh/profiles/web.
Two sidebars on the pageDouble mounting. Remove the legacy manual mount line (- insert: ... better-sidebar ...) from ~/.dsh/profiles/web/cordis.patch.yml; aggregate packages mounting this package under a different id are auto-yielded, no action needed.
Settings values gone after upgradeSince DSH 0.1.7, preferences live on this plugin's mount row in the profile (default entry id better-sidebar). The plugin migrates your old settings.yaml values once on first start and never overwrites newer values.
Terminal unavailableTerminals are provided by DSH itself (this plugin ships no PTY) — see DSH docs; "host provides no terminal capability" in the bottom terminal means this deployment has no terminal controller mounted.
dsh: command not foundInstall DSH first; or use npx -y --package @deepseek-ai/dsh@0.2.1-rc.1 dsh plugin --profile web add dsh-better-sidebar@0.28.2.

🆕 Recent Updates

v0.28.2 — large-session cold-read fix

  • Root cause fixed: a detached session's cwd no longer decodes the whole session log — it reads the workspace address stored in the header (first zstd frame only, header-only), memoized per session with in-flight sharing; activeWorktreeRootOf no longer folds the stored log for a detached session
  • Why 0.28.1 missed it: the single-flight only covered /sidebar/api, while the real startup fan-out is one fs-watch frame per watched directory and one cwd resolution per /sidebar/file|html resource — a 39 MB session was still fully decoded dozens of times in parallel
  • Behavior: an attached session still follows working_directory and linked worktrees; before attach the sidebar roots at the original project and the next 5 s poll switches back
  • Measured (40.2 MB session, local): 12 routes + 36 bypass-entry calls concurrently → 1 header read, 0 full reads, 3 ms, +0.3 MB RSS; pre-fix, 6 bypass calls were 6 full reads with a +1.0 GB peak (≈6 GB extrapolated for 36)

v0.28.1 — UX and reliability patch

  • OOM fix: cold cwd reads shared by the twelve /sidebar/* routes are merged per session and client hint, so a session-switch burst no longer decodes the same large session log N times in parallel
  • Silent wrong-file writes are gone: tab reconciliation now covers tabs in background sessions, and worktree sessions use one address base — a renamed/deleted file is no longer re-created on the next save, and a chat link never opens a same-named file from another checkout
  • Host crash guard: pathological git status output is capped with a latch and a process-tree kill, turning "host dies with RangeError" into one failed SCM refresh
  • Git page: histories with more than 1,000 branches load again; tags now decorate commits, rows and details, and tag changes invalidate pagination
  • Editor: saving after an mtime-only change no longer deadlocks on fs-conflict; the reading position survives tab re-seating; “Add to conversation” lands as a compact reference chip and never flattens earlier chips
  • Markdown links: local destinations normalize Windows backslashes, so C:\ws\_analysis\report.md opens instead of a bare ENOENT
  • Sidebar: the bottom-workbench toggle stays visible while the right panel is open; the macOS dock fallback avoids the traffic lights; a content-stable tab scope ends needless full-file re-reads; closing a side-chat tab archives its session

v0.28.0 — stable plugin release for DSH 0.2.1-rc.1+

  • Move all 13 DSH peer floors to ^0.2.1-rc.1; retain the alpha.0 functionality without runtime changes
  • The upstream alpha.5 → rc.1 full-tree diff contains 355 files, all package.json; no source changes
  • DSH 0.2.0-rc.2 hosts stay on plugin v0.26.1; DSH 0.2.1-alpha.5 hosts stay on v0.28.0-alpha.0
  • Validation: RC adaptation record

🔌 Plugin Ecosystem

ctx.betterSidebar offers two extension points to every plugin — registerTab / registerFileViewer; the built-in 6 tabs + 4 viewers use the very same API. The GitHub topic dsh-better-sidebar already lists 30+ ecosystem plugins; the full integration guide is at docs/external-plugin-guide.md.

import type {} from 'dsh-better-sidebar'  // triggers the ctx.betterSidebar type merge
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} />,
  }))
}
Ecosystem catalog (28 tab plugins · 4 viewer plugins · 4 enhancements)

📑 Tab plugins (sidebar pages)

Plugin⭐Description
ChenRuoT/dsh-sidebar-qaSelect-to-ask side page: Codex-style side questions / Claude Code /btw
fuhefei/dsh-sentinelCondition-driven wake-up system: file / command / HTTP / process / webhook watchers that wake an agent; dock + sidebar branch + global dashboard
Fisfzy/ego-browserAgent browser: i18n-aware local browser tab (auto-registers a sidebar page when better-sidebar is present, falls back to a floating observer)
jiuge2467/dsh-studioFull-stack workbench: multi-source MCP visual debugging hub, visual thinking engine
Iwctwbh/dsh-flowglassFlowglass: realtime session flow visualization (messages / tool groups / subagent branches)
FeatherHunter/dsh-mattpocock-skills-deckGamified mattpocock/skills task system: fog-of-war map, task bar progression
GULI-lab/DSH-element-sourceClick any UI element to jump to its Vue / React / Svelte / Angular source and feed it into the session
Lzh3070/dsh-file-review-tabFile review page: line-level red/green diff + undo + deep links into chat lines
yq04/dsh-git-remotesGit remotes page: branches / upstreams / ahead-behind, fetch with prune, ff-only pull, confirmed push

📣 List your plugin: tag your repo with the dsh-better-sidebar topic to appear on the topic page; then PR a PluginEntry into src/client/plugins-tabs.ts / plugins-viewers.ts to join the in-app recommended catalog.

⌨️ Keyboard Shortcuts
ActionKeys
Save editorCtrl/Cmd + S
Find / replace in fileCtrl/Cmd + F
Find next / previousCtrl/Cmd + G / Shift + Ctrl/Cmd + G
Select next occurrenceCtrl/Cmd + D
Git commitCtrl + Enter
Close tabMiddle-click
Split / merge panesDrag a tab to a pane edge / center
Reference a file in the input boxHover a row → @file button
🔐 Security & ⚠️ Known Limitations
  • Routes sit behind a Host-header trust fence (same as /api); fs.write is atomic; git is only invoked via CLI and never sets identity
  • ⚠️ Since v0.23.0 the fs routes do no workspace-containment check: they can read/write any path the host user can reach (OS permissions only) — callers must not treat these routes as fenced
  • HTML previews render in an opaque-origin sandboxed iframe; the sandbox can be disabled per feature in settings (off by default, with warnings)
  • No git push/pull/fetch; the file tree only watches expanded directories; Markdown preview renders the saved file
  • Read-only formats (spreadsheets / PDF / images / Office) are rendered by DSH's own document preview and follow the host version; the browser view only exists in the desktop profile
  • Unsaved drafts are confirmed before closing a tab / deleting a file / refreshing; saving after external modification is rejected, never silently overwritten
  • On mobile (<768px) there is no bottom panel — its tabs merge into the right sidebar's full-width drawer
🛠️ Development & Build
pnpm install      # @deepseek-ai/* devDependencies are published, resolves directly
pnpm typecheck && pnpm lint && pnpm build && pnpm test
make check        # aggregate gate (matches CI)
make mount        # real-mount smoke: build + pack → pnpm test:mount

Architecture: a single npm package with host/client halves — host (src/index.ts): /sidebar/api/* JSON API, media / HTML preview / upload routes and two WebSockets; client (src/client/index.tsx): native right-sidebar tabs + bottom workbench; state persisted per session in localStorage. Repository rules: AGENTS.md.

Windows / Linux / macOS supported (macOS verified daily, the rest covered by unit tests and Windows CI); no native dependencies — building needs only Node ≥ 20 + pnpm ≥ 10.

💬 Community

QQ group: 577011007

WeChat group QR QQ group QR

🤝 Contributing

  • Code changes go through PRs: develop on a feat/* / fix/* branch → gh pr create; run pnpm typecheck && pnpm build && pnpm test (or make check) before submitting
  • List an ecosystem plugin: tag your repo with dsh-better-sidebar + PR an entry into src/client/plugins-tabs.ts / plugins-viewers.ts
  • Repository rules: AGENTS.md

👥 Contributors

Contributors

🔗 Friends

  • dsh-tianshu-tui: interactive terminal UI plugin for DeepSeek Harness with TDD and evidence-gate workflows
  • dsh-TUI: Claude Code-style fullscreen terminal plugin — pixel-whale header, streaming thoughts, context progress bar + TPS gauge
  • dshfind plugin store: third-party plugin market — public repos under the dsh-plugin topic, synced daily
  • DeepSeek Harness Desktop Tauri: Tauri desktop build — 5MB installer, zero setup, plugins preinstalled
  • DeepSeek Harness Desktop: a modern desktop app — start and manage local Harness services without configuring Node.js; website

MIT License · Built for the DeepSeek Harness ecosystem · discover more plugins under topic dsh-better-sidebar
ztyhehe/dsh-better-sidebar-svnSVN source-control page: status / diff / log / commit / update / revert / conflict resolution, symmetric to the built-in Git panel
Melody-max114/dsh-excel-panelExcel editing page: xlsx preview / edit, live formula evaluation, merged cells, save back to the original file
v587d/dsh-anysearch-refsAnySearch result reference cards: query, source digest, keyword highlights
Lukeknow0/dsh-markdown-link-previewMarkdown artifact link preview: click same-origin .md outputs in chat to read them in the sidebar
mlosun/dsh-docs-panelGlobal docs panel: portable Markdown notes readable from any workspace
tylina/dsh-tylinaTypst document tool: WYSIWYG typesetting for papers, reports, exams, resumes, charts, posters, sheet music, and PPTX-exported slides
lnyuqian/dsh-skill-sidebarSkills panel: scans local skill directories, short action phrases + one-click copy + pinning
g-yixuan/dsh-sidenoteCodex-style side chat + selection-anchored annotations (lightweight consumer plugin)
OMSociety/dsh-ssh-tunnelMulti-host SSH tunnels + SSH manager page
OMSociety/dsh-git-forgeGitHub / Gitea accounts, project authorization and push policies
YesSanSan/dsh-conversation-outlineConversation outline page: turn-structured view, one-click jump, LLM one-line titles
Wulabalabo/dsh-sidebar-Explorer-PlusFile manager page: upload / move / delete / rename / new folder (write operations)
yq04/dsh-turn-reviewTurn review: review agent changes turn by turn
Ghz114514/dsh-refpicsPinterest-style reference-image search: masonry flow, sidebar board, download & Eagle favorites
yzlin499/dsh-yzlin499-easy-pluginsHandy utility bundle (friendly to bare-bones DSH)
dong-victor/dsh-better-sidebar-starterRun-configuration page: IDEA-style Run/Debug configs — one-click start, history, WebSocket live logs, parallel instances
baosfeng/my-dsh-pluginsPersonal plugin collection (dsh-file-activity): sidebar file-activity page — read / create / modify history and stats
Hoemr/dsh-better-overleafOverleaf tab: CDP browser login, project switching, local git mirror with two-way sync
Andor-Z/dsh-turn-outlineTurn-trace page: folds the session by user turns, click any step to jump back to its chat position; zero LLM, read-only

🖼️ Viewer plugins (file viewers)

Plugin⭐Description
HuanLinOTO/dsh-plugin-better-sidebar-plugin-officeOffice trio preview (.docx / .xlsx / .pptx), shipped as a separate slim bundle
HuanLinOTO/dsh-plugin-better-sidebar-plugin-audioAudio preview: zoomable waveform player + realtime spectrum, HTTP Range streaming route, scrubbable at any size
zemul/dsh-video-previewInline video preview: .mp4 / .webm / .mov / .mkv / .avi with HTTP Range seeking
dong-victor/dsh-better-sidebar-jupyterRunnable .ipynb notebook view: lazy Python kernel, streaming output, save-back

🧰 Enhancements & tools

Plugin⭐Description
eg-bole/dsh-better-sidebar-iconsVSCode-style file / folder icon theme (vscode-icons port, pure DOM overlay, zero intrusion)
dong-victor/dsh-better-sidebar-terminal-plusTerminal enhancements: bundled Nerd Font icons, fixed xterm icon rendering, stable terminal cwd
Max-Null/dsh-sidebar-preview-selectPreview selection boost: select text in the sidebar preview → floating "send to session"
Hoemr/dsh-quicklookQuickLook-style Space preview: press Space on the active file tab for full-size image / PDF / text