Introduction¶
The left sidebar of DSH lists all workspaces in a tiled fashion: the more you open, the longer the list, and you have to scroll down to find them. There is no categorized entry for Sessions, and archiving relies solely on the built-in three-state filter. The dsh-workspace-folders plugin adds a layer of folder organization to the sidebar without modifying data. Workspaces can be filed into user-created folders (nested support), each Workspace maintains its own category tree for internal Sessions, and icons can be attached to each row. The directory page lists it under the “Fun Cosplay” category, maintained by Larrtroffen.
It is maintained by Larrtroffen and is a fork of dsh-session-keeper. It adds a display-only Workspace folder layer, folder rows, drag-and-drop, an icon picker, and Session row indentation on top of it. Before understanding what it does, remember this premise: the folder layer is display-only (read-only). It does not rename workspaces or sessions, does not move sessions between workspaces, does not touch disk directories, and only reorders the sidebar.
What It Does¶
In one sentence: It adds collapsing and categorization capabilities to the DSH web sidebar, giving Workspaces and Sessions their own folder layer. The three capabilities in the repository are:
- Workspace folders: a display-only layer that does not write business data.
- Independent Session category tree within each Workspace, data persisted to the Host storage domain.
- Row-start icons, supporting 40 host icon set icons + 48 common emojis.
It also preserves native sidebar operations of DSH: drag-and-drop, rename, pin, archive, search, and view options.
Core Features¶
Workspace Folders (Display-Only)¶
- Create, rename, delete, collapse, and reorder folders in the sidebar.
- Drag a Workspace row to any position within a folder block (title row or expanded body) to file it; you can also use the inline
… → Move to folder…menu. - Dragging a folder to the middle of another folder nests it; dragging to the top/bottom edge of the target folder reorders it at the same level. Dragging a Workspace to Unfiled moves it out of the folder.
- Dragging a Workspace to the folder it already belongs to rearranges it within that folder; dragging it elsewhere changes its affiliation.
- Deleting a folder only removes the grouping: subfolders move up one level, and member Workspaces return to Unfiled; no Workspaces, Sessions, or files are deleted.
- When no folders are created, the list rendering effect is identical to the native browser.
Session Folders (Independent per Workspace, Persisted)¶
Each Workspace maintains its own nested category tree: drag Sessions into categories, create Sessions within categories, collapse/rename categories, pin, three-state archive filtering, and a recoverable delete trash bin. Data is stored in the Host storage domain (session_categories, located in <DSH_HOME>/storages/); it won’t be lost on page refresh, cache clear, or restart.
Icons¶
- Each Workspace row displays a quiet dot by default; clicking it opens the icon picker.
- The icon directory consists of 40 host icon set icons + 48 common emojis, plus a “Reset to default” option to clear the icon.
- Folders used for display can also have individual icons attached.
- It introduces no new dependencies, makes no network requests, and does not perform image decoding; the directory is only rendered when the picker is open, resulting in just one extra map lookup per row in a static sidebar.
Preserved Native Capabilities¶
Search, grouped views (Workspace / Workspace tree / flat), manual sorting and sorting by recent use, pinning Sessions, archive filtering, and Workspace/Session row menus all work as usual.
Installation and Enablement¶
The plugin requires DSH >= 0.2.1-rc.1 < 0.3.0 (the project is built and tested on 0.2.1-rc.5, covering desktop and web versions). Node.js >= 24.9 is only required when building from source; the release package includes the compiled lib/.
After publishing to npm, you can install via npm:
dsh plugin --profile web add dsh-workspace-folders
Or install directly from the GitHub repository:
dsh plugin --profile web add github:Larrtroffen/dsh-workspace-folders
After installation, refresh the web UI or restart DSH Desktop. The plugin is displayed in the plugin manager as dsh-workspace-folders; disabling or uninstalling it in the manager restores the native sidebar.
Typical Usage¶
The table below is the operation path given in the README and can serve as a checklist for getting started.
Create top-level folder: View options menu (slider icon) → New folder, or click the + New folder row at the end of the list.
Create subfolder: Folder row … → New subfolder.
Rename folder: Double-click the folder name, or … → Rename.
File Workspace into folder: Drag Workspace row onto a folder; or Workspace … → Move to folder….
Move Workspace out of folder: Drag Workspace to Unfiled; or … → Move to folder… → Unfiled.
Nest/reorder folders: Drag folder to the middle of another folder (nest), or to its top/bottom edge (reorder); you can also use … → Move to….
Collapse/expand: Click the folder row; the collapsed state will display the number of Workspaces inside.
Delete folder: Folder … → Delete folder, only deletes the grouping.
Set icon: Click the dot/icon at the start of the row, or … → Set icon….
Session folders follow the dsh-session-keeper interaction: drag Session to a category, … → Move to category…, create Session within a category, pin/archive/delete, and undo.
Data and Privacy¶
The two types of data in the table are stored separately; it is worth understanding this design before installing.
| Data | Location |
|---|---|
| Workspace folders, affiliation, expanded state, icons (this plugin’s display layer) | Browser localStorage, key dsh.session-categories.view.v2 |
| Session folders/affiliation/trash | DSH Host storage domain session_categories (<DSH_HOME>/storages/) |
Nothing is uploaded anywhere. The display layer is deliberately kept local to the browser: after clearing site storage, the Workspace folder arrangement will reset (Session folders are unaffected).
Use Cases and Notes¶
It is suitable for developers with many workspaces where finding them in a tiled list is difficult, and for those who want to categorize Sessions by module. If your Workspaces do not exceed one screen for a long time, the benefit is not obvious.
Before using, there are a few points you need to judge yourself:
- The plugin will replace the
sidebar.workspacesarea of the sidebar, so it cannot coexist with plugins that replace the same area (e.g.,dsh-better-workspace,dsh-workspace-categories); only one can remain. - When
dsh-claude-styleis installed, its sidebar patch will conflict with this replacement version in the browser; you need to set the following in that plugin’s configuration:
workspaceView: false # claude-style 的 Active/Archived 标题开关;本插件的视图菜单
# 已经提供同样的三态归档筛选
searchStyle: icon # 把搜索入口保留在侧边栏头部
- Sidebar plugins that only decorate via row slots or themes that only change styles can continue to be used.
- The plugin runs with the permissions of the current DSH process. Please check the source code and license yourself before installing (this project is MIT). It only moves the sidebar display and does not move business data; this is the key to judging what it can do.
- Known limitations: Workspace folders only appear in grouped views (By Workspace / Workspace tree), while flat lists and search results remain tiled; the display layer folders and icons are browser local data and do not persist with the Host. Preview version DSH does not guarantee plugin API stability; when upgrading, the plugin must be upgraded alongside DSH.
Conclusion¶
Its value lies in reducing the organization cost of the sidebar from “remembering where each Workspace is” to “create a folder and drag it in,” without changing any workspace or file behind the scenes. Directory page: https://www.skillhub.cn/plugins/Larrtroffen/dsh-workspace-folders ; GitHub: https://github.com/Larrtroffen/dsh-workspace-folders