NanoAI

Better Sidebar · 0.28.1

Manage files, review Git changes and commit history, track background tasks and use side chats in DSH’s sidebar and bottom workbench.

Install

Install and enable Better Sidebar 0.28.1 through the NanoAI plugin manager. Requires the DSH 0.2.1-rc.2 support line and Node.js >=20; RC3 peer ranges and consumed APIs were assessed statically, but a real RC3 mount has not been tested. Restart DSH and hard-refresh the browser after updating. Verify the originally reported file link, file editing and Git worktrees. Check for duplicate registrations if an aggregate package supplies the plugin. Editing files and Git operations modify real files.

Platform archive · Marketplace version 0.28.1

5.0 MiB · zip。Check the digest, source and permissions after download. Code runs in the user's client after installation.

Download 0.28.1
Compatibility and platforms
Node.js >=20;DSH peer ^0.2.1-rc.2 接受目标 0.2.1-rc.3。基于官方 upstream 0.28.1 的 NanoAI 本地修复构建;使用 RC2 开发依赖完成类型、构建与 Git 回归验证。RC3 仅静态 API/版本范围评估,尚无 RC3 真实挂载和 UI 验证;完整 Windows 套件仍有符号链接权限与归档工具失败。 · Windows, macOS, Linux
Supported DSH core versions
not declared · Runtime compatibility is not verified; declared versions do not establish tested support.

dsh-better-sidebar

Requires Node.js 20 or later and the DSH 0.2.1-rc.2 support line. Operation on DSH RC3 has not been verified. Directory downloads may fail when the installed ZIP utility is MiKTeX ZIP.

✨ Features

🗂️ File ManagementLazy-loading tree, git status colors, live directory watch, global search, drag-and-drop upload, multi-select batch actions, dual-source "Open with" menu. 🌿 GitSource 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, ref badges, branch filter, commit details) in one tab.
📝 Editable Editor & PreviewsAn 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. 🧩 TasksLive subagent topology (workflow graph / tree modes) + background task list: exit codes, live output, force-kill.
💬 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. 🖥️ Bottom WorkbenchA self-drawn bottom panel that coexists with the native right sidebar: drag-to-split panes, multiple terminal tabs, per-session persisted layout.

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. This first version shows no tags and offers no history-changing actions.

🧭 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 and use

Install this archive through the NanoAI plugin manager, enable it as prompted, and hard-refresh the browser (Cmd/Ctrl+Shift+R). Node.js 20 or later and the DSH 0.2.1-rc.2 support line are required. Older hosts need a compatible older plugin; a floating npm latest is not a substitute for this archive.

The terminal is provided by the DSH host; if unavailable, check the host terminal controller. On Windows, directory downloads may be limited by the local ZIP tool.

🔌 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]([repository withheld]/blob/83faf70940160e5cd4c5332f5400aa8f4dbbb6d6/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} />,
  }))
}

📑 Tab plugins (sidebar pages)

Plugin ⭐ Description
ChenRuoT/dsh-sidebar-qa Select-to-ask side page: Codex-style side questions / Claude Code /btw
fuhefei/dsh-sentinel Condition-driven wake-up system: file / command / HTTP / process / webhook watchers that wake an agent; dock + sidebar branch + global dashboard
Fisfzy/ego-browser Agent browser: i18n-aware local browser tab (auto-registers a sidebar page when better-sidebar is present, falls back to a floating observer)
jiuge2467/dsh-studio Full-stack workbench: multi-source MCP visual debugging hub, visual thinking engine
Iwctwbh/dsh-flowglass Flowglass: realtime session flow visualization (messages / tool groups / subagent branches)
FeatherHunter/dsh-mattpocock-skills-deck Gamified mattpocock/skills task system: fog-of-war map, task bar progression
GULI-lab/DSH-element-source Click any UI element to jump to its Vue / React / Svelte / Angular source and feed it into the session
Lzh3070/dsh-file-review-tab File review page: line-level red/green diff + undo + deep links into chat lines
yq04/dsh-git-remotes Git remotes page: branches / upstreams / ahead-behind, fetch with prune, ff-only pull, confirmed push
ztyhehe/dsh-better-sidebar-svn SVN source-control page: status / diff / log / commit / update / revert / conflict resolution, symmetric to the built-in Git panel
Melody-max114/dsh-excel-panel Excel editing page: xlsx preview / edit, live formula evaluation, merged cells, save back to the original file
v587d/dsh-anysearch-refs AnySearch result reference cards: query, source digest, keyword highlights
Lukeknow0/dsh-markdown-link-preview Markdown artifact link preview: click same-origin .md outputs in chat to read them in the sidebar
mlosun/dsh-docs-panel Global docs panel: portable Markdown notes readable from any workspace
tylina/dsh-tylina Typst document tool: WYSIWYG typesetting for papers, reports, exams, resumes, charts, posters, sheet music, and PPTX-exported slides
lnyuqian/dsh-skill-sidebar Skills panel: scans local skill directories, short action phrases + one-click copy + pinning
g-yixuan/dsh-sidenote Codex-style side chat + selection-anchored annotations (lightweight consumer plugin)
OMSociety/dsh-ssh-tunnel Multi-host SSH tunnels + SSH manager page
OMSociety/dsh-git-forge GitHub / Gitea accounts, project authorization and push policies
YesSanSan/dsh-conversation-outline Conversation outline page: turn-structured view, one-click jump, LLM one-line titles
Wulabalabo/dsh-sidebar-Explorer-Plus File manager page: upload / move / delete / rename / new folder (write operations)
yq04/dsh-turn-review Turn review: review agent changes turn by turn
Ghz114514/dsh-refpics Pinterest-style reference-image search: masonry flow, sidebar board, download & Eagle favorites
yzlin499/dsh-yzlin499-easy-plugins Handy utility bundle (friendly to bare-bones DSH)
dong-victor/dsh-better-sidebar-starter Run-configuration page: IDEA-style Run/Debug configs — one-click start, history, WebSocket live logs, parallel instances
baosfeng/my-dsh-plugins Personal plugin collection (dsh-file-activity): sidebar file-activity page — read / create / modify history and stats
Hoemr/dsh-better-overleaf Overleaf tab: CDP browser login, project switching, local git mirror with two-way sync
Andor-Z/dsh-turn-outline Turn-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-office Office trio preview (.docx / .xlsx / .pptx), shipped as a separate slim bundle
HuanLinOTO/dsh-plugin-better-sidebar-plugin-audio Audio preview: zoomable waveform player + realtime spectrum, HTTP Range streaming route, scrubbable at any size
zemul/dsh-video-preview Inline video preview: .mp4 / .webm / .mov / .mkv / .avi with HTTP Range seeking
dong-victor/dsh-better-sidebar-jupyter Runnable .ipynb notebook view: lazy Python kernel, streaming output, save-back

🧰 Enhancements & tools

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

📣 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][r2] / [plugins-viewers.ts][r3] to join the in-app recommended catalog.

Action Keys
Save editor Ctrl/Cmd + S
Find / replace in file Ctrl/Cmd + F
Find next / previous Ctrl/Cmd + G / Shift + Ctrl/Cmd + G
Select next occurrence Ctrl/Cmd + D
Git commit Ctrl + Enter
Close tab Middle-click
Split / merge panes Drag a tab to a pane edge / center
Reference a file in the input box Hover a row → @file button
  • 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

💬 Community

QQ group: 577011007

🤝 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][r2] / [plugins-viewers.ts][r3]
  • Repository rules: [AGENTS.md][r4]

👥 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

[r1]: [repository withheld]/blob/83faf70940160e5cd4c5332f5400aa8f4dbbb6d6/CHANGELOG_EN.md [r2]: [repository withheld]/blob/83faf70940160e5cd4c5332f5400aa8f4dbbb6d6/src/client/plugins-tabs.ts [r3]: [repository withheld]/blob/83faf70940160e5cd4c5332f5400aa8f4dbbb6d6/src/client/plugins-viewers.ts [r4]: [repository withheld]/blob/83faf70940160e5cd4c5332f5400aa8f4dbbb6d6/AGENTS.md

Source, permissions and release information

dsh · Platform archive · MIT · free public download

Source and license
MIT;the original package keeps its license file
SHA-256
518606cba1b495d3eb1394b0e9038d2d17e738713d2e18a56d2202a64dfbff81
Upstream version and local build
0.28.1 · Build 1
Cumulative changes from upstream
Build 1: 0.28.1 Cumulative differences relative to upstream 0.28.1; current build delta: - Integrate upstream main 971a3dc03f8d1643807b65e802490c6271be0387 (0.28.1) into NanoAI base 5d207568409158aae69ad1e063c55c2f8a08608a with original uncommitted RC2 delta; retain Windows MSYS and session file-link fixes. Integrated tree differs from exact upstream commit. - Fix Windows Git operation markers/history/shallow/blame paths. Package final rebuilt outputs through standard pnpm pack, add original native manifest, expand wildcard exports to exact shipped-file mappings, and include truthful source notes. - Final typecheck/lint/build exit0. Initial full suite2834passed/8failed/18skipped; focused repaired Git55/55passed.4symlink EPERM cases remain; installed MiKTeX zip -y unsupported exit16 reproduced on unchanged baseline. RC3 static API/peer check only; runtime/UI untested; rg/fd engine probes skipped. Prior healthy0.28.1-nanoai.1 retained; repository_public false; no compatible prior builder metadata; candidate verified; publish status recorded separately. Previous builder metadata: none supplied; healthy marketplace release 0.28.1-nanoai.1 retained.
Permission declarations
  • 读写宿主用户可访问的文件(无工作区路径隔离)
  • Git 操作
  • 宿主终端能力
  • 任务状态与侧边会话
  • 网络请求及文件传输
Changelog
0.28.1 build 1: integrate upstream main 971a3dc03f8d1643807b65e802490c6271be0387 with NanoAI Windows/MSYS path fixes, file addresses resolved against the addressed session original cwd, and the existing RC2 adaptation. Preserve upstream Git identity caching; fix Windows operation marker, history/shallow and absolute blame paths. This archive is a modified integrated tree, not an exact upstream commit build. Final typecheck, lint and build exited 0. Initial full Windows suite: 2834 passed, 8 failed and 18 skipped. After repairing three Git failures, the related 55 tests passed; the full suite was not rerun. Four symlink EPERM failures remain. The installed MiKTeX Zip 3.1b does not support -y and exits 16, reproduced with the original unchanged baseline and the same invocation; directory downloads fail with that installed tool. All rg/fd engine probes were skipped. Real RC3 mount/UI and the original GUI click chain remain unverified. Keep the healthy 0.28.1-nanoai.1 release.
Published at

Published versions