Skip to content
dsh-market Browse plugins GitHub 中文

g-yixuan/dsh-sidenote

Codex-style side chat + selection annotations for DSH web.

Stars ★ 11 Category UI Enhancements Listed 2026-08-29 npm dsh-sidenote

Install

Inside DeepSeek Harness, with dsh-market

dsh plugin --profile web add dshmarket

Or from the command line

dsh plugin --profile web add dsh-sidenote

Installing runs third-party code with your own permissions — it can read your files, use your credentials and reach the network. Review the source first, and pin a commit (github:owner/repo#sha) when you can.

README

Demo: annotate a selection → dig in the side chat → reflow the answer home

Install

dsh plugin --profile web add dsh-sidenote

One step, no prerequisites. Then click "Side" in the session header, or just select any reply text.

For local development, mount with dsh plugin --profile web add link:<repo path> (client changes hot-reload; host changes need a dsh web restart).

Side chat — side questions never derail the main thread

Fork the current session (full history snapshot, no compression) into an independent side session living in the right-hand panel:

  • Three entries — the header "Side" button, the right-sidebar guide, and the /side slash command;
  • The same rendering material as the main chat: tool cards, thinking previews, task cards, model/permission switching, @ references, image attachments;
  • Answer approvals and questions right inside the panel — no jumping back to the main view; a toast lets you know when a reply lands;
  • Inherited history folds into a summary card; fold and scroll state survive reloads; Alt+J hops focus between main and side.

The side chat panel: forked history + native-grade tool cards + a full-capability composer

Selection annotations — turn "this bit is off" into model context

  • Select text in an assistant reply → popover → note editor, with numbered badges anchored at the right gutter;
  • Annotations are controlled objects (preview, remove individually) with zero draft pollution — they serialize into a model-readable structured protocol block only at send time;
  • Sent bubbles collapse into a "×N annotated" trace label; everything survives reloads.
Selection popover Annotation editor
Selection popover Annotation editor

Reflow — side-lane findings come home

  • One click sends a side-chat conclusion back to the main session as a Q&A pair (the answer and the question it answers) — a controlled chip above the main composer that rides along with your next message; @-mentioning a side chat works too;
  • "Save as session" promotes a side chat into the session list; recently closed ones reopen from the /side popup.

Reflow chip: a side-chat finding parked above the main composer

Collapsed state (inherited-history card + action row) Side slash menu
Collapsed state Slash menu
Badge + annotation chip Sent-message trace
Badge and chip Sent trace

Compatibility

DSH dsh-better-sidebar Behavior
≥ 0.1.5-rc.1 not required direct on the DSH native right sidebar
≤ 0.1.2-rc.x ≤ 0.18.x (required) legacy layout hosting

The plugin degrades by capability when a host face is absent (never crashes the page); it coexists with dsh-better-sidebar natively (independent registrations, no dependency).

Single-instance semantics (direct leg): the host allows one tab of a page-kind per pane — one side chat per session at a time (opening again focuses the live tab; after closing, /side reopens the recent one). Multi-instance returns with the host's multiple capability (0.1.6).

Design notes

  • A real fork, not a summary: the side session is a genuine DSH session (full history snapshot) with the same capabilities as the main one — not a one-shot Q&A.
  • List hygiene: side sessions are archived out of the session list; your list stays clean.
  • An accumulative annotation workflow: select repeatedly, stack notes, edit, remove, send them together — not a one-off quote.

Development

Command What it does
pnpm typecheck tsc --noEmit
pnpm test vitest unit tests (213 cases)
pnpm build type declarations + tsdown (host ESM + client CJS bundle, purity gates)
pnpm test:mount mount smoke: real dsh web + fabricated session log + ten Playwright journey lanes (BS_VERSION/DSH_CMD version matrix)

Issues and ideas are welcome in Issues.

License

MIT

Content from the project README on GitHub ↗

Comments

Comments live in GitHub Discussions. Sign in with GitHub to post or react.