- Accueil
- Plugins
- Améliorations UI
- dsh-workspace-folders
dsh-workspace-folders
larrtroffen/dsh-workspace-folders
Folder organization for the DeepSeek Harness sidebar: display-only Workspace folders (drag a Workspace onto a folder block to file it, nest and re-order folders, collapse with counts), durable per-Workspace nested Session folders, and per-row icons chosen from 40 host icons or 48 emoji. A fork of WSNMM3/dsh-session-keeper (MIT, itself derived from ht719/dsh-session-categories); it replaces the sidebar.workspaces region, so do not install it alongside the upstream plugins.
Installer
dsh plugin --profile web add github:larrtroffen/dsh-workspace-foldersREADME
dsh-workspace-folders
Native-feeling folder organization for the DeepSeek Harness (DSH) web sidebar.
DSH's left sidebar lists every Workspace as a flat section. This plugin adds the missing organizational layer — user-created folders for Workspaces, nested Session folders inside each Workspace, and per-row icons — while keeping the shipped sidebar interactions (drag, rename, pin, archive, search, view options) intact.
The folder layer is display-only: it never renames a Workspace or a Session, never moves a
Session between Workspaces, and never touches a directory on disk. It only rearranges the
sidebar. Session folders are durable (dsh-session-keeper's host-side storage).
![]()
Features
Workspace folders (display-only)
- Create, rename, delete, collapse and re-order folders from the sidebar itself.
- File a Workspace by dragging its row anywhere onto a folder block (the header
row or its expanded body), or through the row's
… → Move to folder…menu. - Drop a folder on the middle of another folder to nest it; drop it on the top/bottom edge to re-order siblings. Drag a Workspace onto Unfiled to take it out of a folder.
- Dropping a Workspace inside the folder it already belongs to re-orders it there; anywhere else files it into that folder.
- Deleting a folder only deletes the grouping: subfolders move up, member Workspaces return to Unfiled. No Workspace, Session or file is removed.
- With no folders, the list renders exactly like the shipped browser.
Session folders (per Workspace, durable)
Every Workspace keeps its own nested category tree: drag Sessions in, create a Session inside a category, collapse/rename, pin, archive with the three-state filter, and a recoverable delete bin. Data lives in the Host storage domain (survives reloads, cache clears and restarts).
Icons
- Every Workspace row shows a quiet default dot; clicking it opens the icon picker.
- 40 icons from the host's own icon set plus 48 common emoji; "Reset to default" clears the icon.
- Display folders can carry their own icon as well.
- No new dependency, no network request, no image decoding. The catalog renders only while the picker is open; an idle sidebar costs one map lookup per row.
Kept from the shipped browser
Search, grouping modes (Workspace / Workspace tree / flat), manual and recency ordering, pinned Sessions, archive filtering, Workspace and Session row menus.
Requirements
- DSH >= 0.2.1-rc.1 < 0.3.0 (built and tested on 0.2.1-rc.5, desktop and web profile).
- Node.js >= 24.9 is only needed to build from source; the published bundle ships prebuilt
lib/.
Install
From npm (once published):
dsh plugin --profile web add dsh-workspace-folders
From GitHub:
dsh plugin --profile web add github:Larrtroffen/dsh-workspace-folders
Then refresh the web UI (or restart DSH Desktop). The plugin appears as dsh-workspace-folders in the plugin manager; disable or remove it to restore the shipped browser.
How to use
| Action | How |
|---|---|
| New top-level folder | View-options menu (sliders icon) → New folder, or the + New folder row at the end of the list |
| New subfolder | Folder row … → New subfolder |
| Rename | Double-click the folder name, or … → Rename |
| File a Workspace | Drag the Workspace row onto a folder; or Workspace … → Move to folder… |
| Unfile | Drag the Workspace onto Unfiled; or … → Move to folder… → Unfiled |
| Nest / re-order folders | Drag a folder to another folder's middle (nest) or top/bottom edge (re-order); or … → Move to… |
| Collapse / expand | Click the folder row (collapsed shows the Workspace count) |
| Delete a folder | Folder … → Delete folder (grouping only) |
| Set an icon | Click the row's leading dot/icon, or … → Set icon… |
Session folders keep the interactions from dsh-session-keeper: drag a Session onto a category,
… → Move to category…, create a Session inside a category, pin/archive/delete with undo.
Data and privacy
| Data | Location |
|---|---|
| Workspace folders, folder assignments, expansion, icons (this plugin's display layer) | Browser localStorage under dsh.session-categories.view.v2 |
| Session folders / assignments / recycle bin | DSH Host storage domain session_categories (<DSH_HOME>/storages/) |
Nothing is uploaded anywhere. The display layer is intentionally browser-local: clearing the site's storage resets the Workspace folder layout (Session folders are unaffected).
Compatibility
-
The plugin replaces the sidebar's
sidebar.workspacesregion, so it cannot run together with another plugin that replaces the same region (e.g.dsh-better-workspace,dsh-workspace-categories). Remove one of them. -
With
dsh-claude-styleinstalled, its sidebar patches fight the replacement browser. Set these in that plugin's config for the best result:workspaceView: false # claude-style's Active/Archived header switch; this plugin's view menu # already provides the same three-state archive filter searchStyle: icon # keeps the search affordance in the sidebar header -
Other sidebar plugins that only decorate rows through slots, and themes that only style the frame, keep working.
Build from source
npm install --legacy-peer-deps
npm run build
node scripts/inline-css.mjs
node scripts/verify-build.cjs
node scripts/verify-typert-manifest.mjs
lib/ is committed so consumers never need a build step. The Host half is prebuilt Node ESM;
tsdown.host.config.ts rebuilds it when the Host source changes.
Known limitations
- Workspace folders only appear in the grouped views (By Workspace / Workspace tree); the flat list and search results stay flat.
- The display folder layer (and icons) are browser-local, not Host-persisted.
- Preview DSH releases do not promise plugin API stability; upgrade the plugin together with DSH.
License and credits
MIT. This project is a fork of dsh-session-keeper
by WSNMM3 (MIT), which itself derives from
ht719/dsh-session-categories (MIT). The
display-only Workspace folder layer, folder rows, drag-and-drop, icon picker and session-row
indentation were added by this fork. See LICENSE and FORK-NOTES.md.
Plugins associés
dsh-web (dsh-task-board)
zhu1090093659/dsh-web
dsh-web (dsh-web-all)
zhu1090093659/dsh-web
dsh-TUI
ccch1mneyyy/dsh-tui
dsh-web-ui (dsh-task-board)
zhu1090093659/dsh-web-ui