Sessions & Messages

DSH-Basic-Right-Sidebar

xinspark/DSH-Basic-Right-Sidebar · ★ 2

xinspark

Basic Right Sidebar — a right sidebar plugin for DeepSeek Harness: two-level navigation (Functions / Sessions), workspace/session breadcrumb, session overview with log download, native trajectory view, and configurable topbar decluttering.

License
MIT
Added
2026-08-16
Maintenance
active
Install kind
github
Manifest details
Manifest status
Declared
Manifest path
package.json#dsh
Manifest checked
2026-08-19
Lifecycle scripts
None found

Static manifest checks report declarations only; they are not compatibility or security review.

安装

dsh plugin --profile web add github:xinspark/DSH-Basic-Right-Sidebar

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. Highlights
  2. Screenshots
  3. Install
  4. Configure
  5. Relationship with dsh-better-session-title
  6. Relationship with DSH
  7. Develop
  8. Community
  9. Ecosystem
  10. Acknowledgments
  11. License

Basic Right Sidebar is a right sidebar foundation plugin for DeepSeek Harness — pure UI enhancement that introduces no new capabilities: it surfaces DSH's native features inside the right sidebar, and is meant to be the foundation plugin every feature-enhancing right sidebar builds on.

The native DSH left sidebar is rich, but when it is collapsed — or when you simply prefer a right-hand workflow — sessions, workspaces and panel switches become unreachable without extra clicks. This plugin brings those native controls to the right edge of the screen. Installing it also installs the sub-plugin dsh-better-session-title (the session-topbar workspace/session breadcrumb).

Works on Windows · macOS · Linux (DSH Web GUI) — plain JavaScript, no native dependencies, no build step for distribution.

Highlights

Screenshots

Right sidebar UI in the session view:

Function area / Overview (non-fullscreen)

Function area / Overview

Function area / Trajectory (non-fullscreen)

Function area / Trajectory

Session management / Overview (non-fullscreen)

Session management / Overview

Function area / Trajectory (fullscreen)

Function area / Trajectory (fullscreen)

Right sidebar collapsed

Right sidebar collapsed

Plugin configuration UI

Plugin configuration UI

Plugin configuration UI (continued)

Install

dsh-basic-right-sidebar is a bundle — a configuration patch layer distributed as a package (see the official DSH plugin publishing docs). Install it into a profile with the dsh plugin command — it links the package and appends it to dsh.profile.bundles automatically:

# from GitHub (primary channel; v1.0.0 is the current release tag)
dsh plugin --profile web add github:xinspark/DSH-Basic-Right-Sidebar#v1.0.0
  • Consider locking a commit: a GitHub install pulls the repository source, so later pushes don't silently change what you run. To pin the exact content, use github:xinspark/DSH-Basic-Right-Sidebar#<commit-sha> (as recommended by the official docs).

  • Local directory / tarball (development or offline):

    dsh plugin --profile web add ./dsh-basic-right-sidebar
    dsh plugin --profile web add ./dsh-basic-right-sidebar-1.0.0.tgz
    

Then start the web UI: dsh web (or dsh --profile web). The first add initializes the profile with @deepseek-ai/dsh-base automatically.

The sub-plugin comes along: this bundle's cordis.patch.yml inserts both the dsh-basic-right-sidebar and dsh-better-session-title rows. The sub-plugin is declared as a GitHub git dependency in package.json's dependencies (commit-SHA locked, so upstream pushes can't silently change behavior); pnpm fetches it when you install this bundle — one command, both plugins. Do not dsh plugin add dsh-better-session-title separately (insert appends, so you would end up with duplicate plugin rows).

One-time pnpm security setting required: pnpm ≥10.6 enables blockExoticSubdeps by default, which refuses to install packages that have git-spec sub-dependencies (which is exactly how this plugin ships its sub-plugin) — you'd see an error like ERR_PNPM_EXOTIC_SUBDEP. If that happens, append one line to the profile's pnpm-workspace.yaml (e.g. $DSH_HOME/profiles/web/pnpm-workspace.yaml) and re-run the install command:

blockExoticSubdeps: false

It is a one-time, profile-level setting (DSH's own template doesn't include it). This plugin is plain JS with no lifecycle scripts, so no allowBuilds approval is needed.

  • Local development (editing both plugins): pnpm does not see local edits through a git dependency, so add the child as a direct profile dependency instead. Install it with --save-dev into devDependencies: dsh plugin's bundle reconciliation only scans dependencies, so a child in dependencies would be auto-promoted into its own bundle layer by the next dsh plugin command — duplicating the row the parent bundle inserts:

    dsh plugin --profile web add ./dsh-basic-right-sidebar
    pnpm --dir "$DSH_HOME/profiles/web" add -w --save-dev link:"$DSH_HOME/plugins/dsh-better-session-title"
    

    If the child already landed in dependencies or dsh.profile.bundles: move it from dependencies to devDependencies in package.json and remove the package name from dsh.profile.bundles.

  • Upgrading the sub-plugin: update the commit SHA (or tag) in the package.json dependency to a newer commit of the dsh-better-session-title repository.

  • Removal: dsh plugin --profile web remove dsh-basic-right-sidebar plus pnpm --dir "$DSH_HOME/profiles/web" remove dsh-better-session-title.

The plugin's bundle patch (cordis.patch.yml) registers the host and client rows automatically. The browser half is served per-request, so client-side changes only need a page refresh; host-side changes need a restart.

Configure

Open Settings → Plugins → Basic Right Sidebar:

Option Description
Open right sidebar by default Auto-expand the sidebar on load; manual collapse is never overridden.
Hide duplicated session topbar elements Master switch; when on, choose which of the following to hide: session log · session mode · subagents · background jobs · chat/trajectory tab bar.
Show workspace/session breadcrumb The breadcrumb on the left of the session topbar (provided by the dsh-better-session-title sub-plugin); off restores the native topbar.

Settings persist to $DSH_HOME/plugins/dsh-basic-right-sidebar/settings.json. The plugin ships its own persistence endpoint (/bsrs-settings): DSH's settings wire only exposes an allowlisted set of namespaces, so third-party namespaces cannot use it.

Relationship with dsh-better-session-title

This plugin ships dsh-better-session-title as a sub-plugin: package.json declares it in dependencies (git dependency, commit-locked), and cordis.patch.yml inserts its plugin row together with this bundle. The topbar breadcrumb is exclusively provided by the sub-plugin (registered into conversation.session.header.actions); this plugin's "Show workspace/session breadcrumb" setting is bridged to it via the window.__BASRS_SETTINGS__ snapshot and the 'basrs:settings' event — when off, the sub-plugin hides the breadcrumb and restores the native title.

  • If you installed this plugin, do not install the sub-plugin separately — two bundles inserting the same plugin row duplicate it.
  • The sub-plugin can also be installed standalone (without the parent plugin the settings bridge defaults to enabled).
  • If both bundles are installed, turn off the breadcrumb on either side.

Relationship with DSH

Basic Right Sidebar is a community plugin built on the official deepseek-ai/deepseek-harness — it is not an official DeepSeek product.

Everything it shows is DSH's own data and UI, re-arranged:

  • The sidebar is rendered into the official details slot; the toggle into conversation.session.header.utilities; the config card into settings.plugin.item; the topbar breadcrumb into conversation.session.header.actions via the dsh-better-session-title sub-plugin.
  • The trajectory view is the official DSH trajectory component, vendored and lazy-loaded — pixel-identical, no system source changes.
  • The icon library prefers native icons so the sidebar never looks alien next to the official UI.

If you prefer the command line, or you want to contribute to the core, use the official repository.

Develop

  • index.js — host half: session log stats, last-todos snapshot, and settings persistence (GET/POST /bsrs-settings).
  • lib/client.js — browser half (UMD, registered into DSH clientModules). Structure, top to bottom:
    1. Vendored official trajectory view (lazy-loaded; normally you don't touch it).
    2. Icon library (createIconLibrary) — native icons preferred; add new icons per the rules at the top of the library.
    3. Component library (createComponentLibrary) — SectionCard, dropdown menus (MenuItem/MenuPop/MoreMenu/DropdownList), Tag, StateDot, TodoList/TodoGlyph/ProgressGlyph, task-status normalization, time formatting, shared CSS. DropdownList is absorbed from the dsh-better-session-title sub-plugin (self-drawn data-driven dropdown: fixed positioning + viewport avoidance / click-outside close / inline meta + hover more button); the icon library already covers every native icon the sub-plugin's breadcrumb uses (including the chevronDownOutline14/chevronUpOutline14/ellipsis16 naming-aligned aliases).
    4. apply(ctx) — registers the slots: details (sidebar), conversation.session.header.utilities (sidebar toggle), settings.plugin.item (config card); ships built-in zh/en dictionaries that follow DSH's language switch. The topbar breadcrumb (header.actions) is registered by the sub-plugin.
  • dsh-better-session-title sub-plugin — a separate package (git dependency declared in package.json, its row inserted by cordis.patch.yml). Its client half registers the conversation.session.header.actions breadcrumb; the parent's showBreadcrumb setting is bridged to it via the window.__BASRS_SETTINGS__ snapshot and the 'basrs:settings' event. Its code lives in the dsh-better-session-title repository.

Extension cheatsheet:

  • Add a panel — add an entry to the panels list in apply and write the render component.
  • Add copy — add a key to BSR_ZH / BSR_EN.
  • Add an icon — register it in the icon library (native first, custom fallback).

Community

  • GitHub Issues — bugs, feature requests and questions.
  • GitHub Discussions — ideas and general talk about extending the sidebar.
  • Topic dsh-plugin — the community plugin topic this project is tagged with.

Ecosystem

Projects and resources around the DeepSeek Harness ecosystem that we find useful:

Project What it is Link
DeepSeek Harness The official project: "Everything is a Plugin." GitHub
dsh-TUI Full-screen interactive terminal UI for DSH. GitHub
Awesome DSH Plugin Community-curated list of DSH plugins.
dsh-market Plugin marketplace covering 1500+ DSH plugins. GitHub
DSH-Plugins-Marketplace In-GUI plugin marketplace built on the dsh-plugin topic. GitHub

Want your project listed here? Open a PR or start a Discussion.

Acknowledgments

Thanks to DeepSeek Harness and the DeepSeek AI team — the agent, models, tools, sessions, Web UI and plugin ecosystem all come from this project; to Cordis for the plugin foundation; and to the Koishi.js community for its long-standing plugin practices, tooling and experience.

License

MIT — free and open source.

Basic Right Sidebar is a community plugin for DeepSeek Harness; it is not an official DeepSeek product. If someone tries to sell you this plugin, please refuse.