auggie246/dsh-sidebar ↗★ 0

dsh-sidebar

Source control, file explorer, previews and a terminal for DeepSeek Harness Web 适合需要在 DSH 界面内直接进行 Git 提交、文件管理和终端操作的用户。

Package
dsh-sidebar
Compatibility
Unverified
Harness peer range
^0.1.2-rc.0 || ^0.1.5-rc.0 || ^0.1.7-rc.0 || ^0.2.0-rc.0
Cordis peer range
^4.0.1
Version
0.8.4
License
MIT
Last updated
Oct 3, 2026

Other repositories with this package name

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:auggie246/dsh-sidebar

Usage

Source Control

Use the Source Control card to work with the current repository:

  • Select + or − beside a file or group to stage or unstage changes.
  • Select discard twice to confirm that you want to throw away a file's changes. See Security for what discard removes.
  • Enter a commit message and select Commit. Press ⌘/Ctrl + Enter to commit from the keyboard.
  • If no files are staged, committing stages all changes first—similar to VS Code's Source Control view.
  • Click the branch name to switch to another local branch. Git refuses unsafe switches (for example conflicting local changes) and the card shows its message; nothing is stashed or forced.
  • Use the sync controls to fetch, pull, or push. Pull and push require an upstream branch.

The card refreshes while it is visible, so branch and working-tree state stay current.

Commit Graph

The Commit Graph card displays commits from every local and remote ref. Each row shows the subject, the author's colored initials, and the relative time; hover a row for the full author, date, and hash. Scroll to load older commits. Right-click a commit to copy its hash or message.

File previews

The Panel + picker lists Terminal, Localhost URL, and File. File takes a workspace path and picks the presentation from the extension, the same way the Explorer does: HTML and Markdown files render, every other file opens as Text Preview. The list scrolls when the Panel is too short to show every entry.

Saved File Previews from before presentations were chosen by extension migrate once on first load. HTML and Markdown files keep their rendered presentations. Every other file becomes Text Preview. Tabs keep their saved presentation across Panel remounts and page reloads.

Text Preview shows inert source text with theme colors and a monospace font. It preserves whitespace, keeps long lines unwrapped, and scrolls in both directions. One row carries one source line and its gutter number. A toolbar row carries the path, a copy control, and a wrap toggle, and a hint points at the browser's own find. Source under 512 KB is coloured for its language — 23 common languages are vendored with Prism — and anything larger renders plain. Empty files show File is empty.. Files containing a NUL byte show Binary files are not supported. instead. The existing 2 MB limit and read errors apply to every File Preview.

Diff Preview shows one unified change against HEAD, with the old number, the new number, and the -/+/space marker on each row. Open it by selecting a Source Control file name. A staged and an unstaged change to one path share the one tab. A file with no change against HEAD — an untracked file, or one you just reverted — shows its Text Preview under the same tab instead.

Selecting a file chip on the conversation's Files Changed Row (the "Files changed" card on DSH 0.2.0) opens that file as a Panel Tab. When the file opens as a Text Preview — or as a Diff Preview that falls back to one — the reported line is marked and scrolled into view. A rendered HTML or Markdown tab has no source row to mark, so it opens unmarked. The chip never opens the shipped Rightbar column.

Explorer

The Explorer card is a view-only file explorer over the current session's workspace. Unlike the Git cards it is not git-bound: it renders in any workspace, git repository or not, and it hides nothing — dotfiles, .git, and gitignored entries all show.

  • Select a folder to expand or collapse it. Each expansion lists that one folder, so large folders such as node_modules cost nothing until you open them, and a folder with more than 1000 entries shows a "+N more" row.
  • Select a file to open a read-only preview Panel Tab. .html and .htm use HTML Preview. .md and .markdown use Markdown Preview. Matching ignores letter case. Every other path uses Text Preview, including dotfiles and extensionless files. Selecting the file again focuses the matching path-and-presentation tab. Picker overrides for the same path remain separate tabs. Selecting a file also opens the Panel if it is closed.
  • The card refreshes while it is visible by re-listing only the workspace root and the folders you expanded.
  • View-only means exactly that: the card renders the tree and opens previews. Creating, renaming, moving, and deleting files is out of scope.

Customize the sidebar

Select the gear icon in the sidebar header to show or hide cards. Your choice is saved in the browser, so it remains after reopening DSH Web.

Configuration and privacy

There is nothing to configure. The plugin uses your existing Git credentials and configuration on the DSH Web host. Card visibility and layout state (Sidebar open/closed and width, Panel open/closed and height) are stored only in this browser — globally, shared by every workspace — under dsh.rsidebar.cards.v1 and dsh.rsidebar.panel.v1. Each session's open Panel Tabs are stored in this browser too, under dsh.rsidebar.panels.v1..

Try it for one session

Want to try the sidebar without installing it permanently? The repository includes a dynamic plugin that an agent can load into the running DSH process. It disappears when DSH restarts. See dynamic/README.md for the one-session setup prompt.

Troubleshooting

  • The sidebar is missing: confirm dsh-sidebar is listed in the profile's dsh.profile.bundles. dsh --profile web --dump-config prints the composed tree, and it must contain - id: sidebar. Then restart dsh web and open the arrow on the far right edge.
  • The built-in right-panel tabs are missing: expected on DSH 0.1.5. The plugin's rightbar registration shadows the built-in right Sidebar's panel, so its Files and Documents tabs have no visible surface. The plugin's own cards replace them. See the limitations above.
  • “Not a git repository”: open a session whose workspace is inside a Git repository.
  • Fetch, pull, or push fails: check that Git is installed and that the host has the required Git credentials. Pull and push also need an upstream branch. On hosts where DSH runs the session under its file sandbox, ssh can refuse its system config because the sandbox masks file ownership outside the workspace ("Bad owner or permissions on /etc/ssh/ssh_config.d/…"). The card retries on that error with your own ~/.ssh/config, then with a config-free ssh — so your host aliases, ports and identity settings still apply and no key name is hard-coded. The same push or pull in your own terminal is never affected.
  • A commit fails: make sure Git has a configured author identity and that your commit message is not empty.
  • A prompt icon still shows as a box: the embedded icon set covers Powerlevel10k's default icons. If your prompt configures an icon outside that set, add its codepoint to scripts/nerd-icon-glyphs.txt and run npm run build:nerd-icons.

Configuration and privacy

There is nothing to configure. The plugin uses your existing Git credentials and configuration on the DSH Web host. Card visibility and layout state (Sidebar open/closed and width, Panel open/closed and height) are stored only in this browser — globally, shared by every workspace — under dsh.rsidebar.cards.v1 and dsh.rsidebar.panel.v1. Each session's open Panel Tabs are stored in this browser too, under dsh.rsidebar.panels.v1..