Adds per-Workspace category trees to the Web sidebar, with nested categories, drag-and-drop session assignment, category-scoped session creation, and category deletion that archives contained sessions.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-session-categories
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:ht719/dsh-session-categories
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
English | 中文
Session Categories adds user-managed category trees to the dsh sidebar. Each Workspace keeps its own categories, and each session can belong to at most one category.
The package includes the Host entry, Web client bundle, and Cordis profile patch. No separate Client or Bundle package is required.
What it looks like
The sidebar groups sessions inside clear, collapsible category containers. The screenshot shows the Workspace, category, and session hierarchy in the current plugin layout.
Within a Workspace, you can:
- create a session directly inside a category;
- expand or collapse categories without losing their hierarchy;
- drag a session into another category;
- create a top-level category from the Workspace actions menu;
- create a child category, or rename and delete the current category, from the category actions menu;
- move a session with the folder icon on the Move to category action.
Expanded categories use nested containers with a fixed inset at each depth. Sessions receive one additional inset beyond their category, and drag targets highlight without changing row dimensions. Collapsed Workspace rows show a hierarchy icon when they contain categories or sessions.
Install from GitHub
The dsh command must be available in your shell. Install the prebuilt package directly into an unmodified dsh Web profile:
dsh plugin --profile web add dsh-session-categories
dsh --profile web
If you are running dsh from a source checkout, use its package launcher instead:
pnpm dsh plugin --profile web add dsh-session-categories
pnpm dsh --profile web
The repository includes generated runtime files, so a separate plugin build is not required.
For the unreleased GitHub version, install directly from the repository:
dsh plugin --profile web add github:ht719/dsh-session-categories
Behavior and data
Deleting a category recursively archives its sessions; it never deletes their durable logs. Archive operations are retried with the same operation id and recover after a restart. Mutations reject stale revisions, cross-Workspace session ids, descendant moves, and assignments to unknown categories.
Compatibility
The plugin targets the current dsh prerelease plugin APIs and is intended to work with an unmodified dsh installation. dsh does not promise pre-release compatibility across versions, so update dsh and this plugin together when upgrading.
Source layout
The repository root is the installable prebuilt package. Source packages are retained under packages/workspace/session-categories/, packages/client/ui-session-categories/, and packages/bundle/session-categories/.
The plugin is composed as an ordinary Cordis row. It does not require changes to ui-workspace, ui-slots, api-remotes, or other core dsh packages.
Links
More in this category
liangmianya/dsh-synapse★ 264
Visual, non-linear conversation workspace for DeepSeek Harness — sessions, follow-ups and branches become a browsable conversation map.
Totoro-qaq/dsh-plugin-bridge★ 163
Moves an existing DSH session to another agent preset through a previewable five-section handoff, preserving the source session and either pausing the target for confirmation or continuing immediately.
Nwflower/dsh-chat-import★ 125
Import full-fidelity chat histories from 13 coding agents (Claude Code, Codex, ChatGPT, Cursor, Gemini, opencode, and more) as resumable DeepSeek Harness sessions, with reverse export back to Claude Code.
Anionex/dsh-turn-rewind★ 106
Rewind conversation and workspace state, powered by a persistent Change Ledger.
Renzic-Stone/DSH-EasyRewrite★ 98
Inline-edit and recall your own user messages in dsh web — lazily and seamlessly, with a version pager and per-session draft persistence.
lamost423/dsh-trace-compare★ 60
Trace Compare & Live Maze: draw the agent's real exploration — main path, failed or dead-end detours, backtracks, and subagent branches — on one wall-clock timeline; upload 1–2 session logs for a same-axis compare, or watch it grow live in a session tab.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.