Install
Inside DeepSeek Harness, with dsh-market
dsh plugin --profile web add dshmarket
Or from the command line
dsh plugin --profile web add github:Semidia/dsh-session-manager
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
A client plugin for DeepSeek Harness web that adds a right-click context menu on sidebar conversation rows and a Session manager entry at the sidebar footer.
It answers the frequent request "the three-dot menu has too few options compared
to Codex". The stock three-dot menu is hard-coded (no public session-row action
slot in 0.1.0-rc.6), so this plugin works around it instead: right-click any
session row for a full action menu, and use the footer button for the current
session.
Features
Right-click a conversation in the sidebar:
| Action | Backing |
|---|---|
| Pin / Unpin chat | localStorage (dsh.session-pins.v1) — shared with dsh-session-pins |
| Mark as unread / read | Local state (dsh.session-unread.v1) with a dot on the row; opening a session marks it read |
| Rename chat | Official sessions.binding(id).session.rename() + a rename dialog |
| Archive chat | Official workspaces.archiveSession() |
| Continue in new chat | Official sessions.fork() then open the child |
| Open in file explorer | Official workspaces.openPath() on the session's workspace |
| Copy working directory | Workspace path from the workspaces store |
| Copy session title / ID | Clipboard (writeClipboard) |
| Copy deep link | Copies <origin>/?session=<id> — opens the session when dsh-deeplink is installed |
| Open in new window | window.open(.../?session=<id>) — needs dsh-deeplink to land on the session |
Sidebar footer "Session manager" (current session): export session ZIP, archive, fork, copy title / ID.
Not implemented (no backend in rc.6): continue in a new working tree, delete-session.
Install
dsh plugin --profile web add github:Semidia/dsh-session-manager#v0.1.1
# recommended companion for deep links:
dsh plugin --profile web add github:qyw233/dsh-deeplink#main
dsh web
Restart dsh web once after adding, then hard-refresh the page. No official
package is patched except one additive data-session-id attribute on the
session row (see below).
How it works
- A one-line additive patch adds
data-session-idto the sidebar session row (@deepseek-ai/dsh-client-ui-workspace→SessionNodeItem). Without it, no public API exposes which session a row represents. - The plugin registers a capture-phase
contextmenulistener and a menu in the publicshell.overlayslot, positioned at the cursor via the primitivesMenu(portal +getAnchorRect). - The footer entry registers in the public
sidebar.footer.actionslot (additive cell, idsession-manager, same slot as Session Pins). - All session/workspace actions use public client services
(
sessions,workspaces,locale,slots); no private host APIs.
The
data-session-idrow patch lives in the installed@deepseek-ai/dsh-client-ui-workspacepackage and is overwritten on a dsh upgrade — re-apply it (one line) after upgrading.
Compatibility
Targets @deepseek-ai/dsh@0.1.0-rc.6. DeepSeek Harness is in developer
preview; a new release candidate may change the slot contracts this plugin
relies on until compatibility is reviewed.
License
MIT
Comments
Comments live in GitHub Discussions. Sign in with GitHub to post or react.