Introduction¶
DeepSeek Harness (DSH) adopts a plugin-based architecture, and the default Web client sidebar displays only a two-level structure: Projects and Sessions. When the number of workspaces grows or project structures become complex, this flat list can be difficult to manage. dsh-workspace-groups is a client plugin designed to elevate the sidebar view hierarchy to three levels: Category folders → Project folders → Sessions.
The plugin defines category rules through a sidebar YAML configuration file, and supports fully manual grouping, drag-and-drop sorting, and persistent saving. It provides a good user interaction experience while maintaining zero intrusion into the core storage implementation.
Plugin Overview¶
- Name: dsh-workspace-groups
- Maintainer: z-col
- Category: Client
- License: MIT
- Positioning: Sidebar grouping manager for the DSH Web client
Core Features¶
-
Three-level tree navigation
Expands the original two-level list into a three-level structure: Category → Project → Session. Both category folders and project folders can be collapsed, and their expanded state is saved independently and retained across refreshes and restarts. -
Group management
Supports manual creation, renaming, and deletion of any group. Rule-based categories defined by YAML also support renaming and hiding operations. -
Rule-based automatic categorization
Category rules are defined in a YAML file loaded alongside the plugin, with support forpathPrefix,nameContains,basenameContains, and others. Modifying the YAML file adjusts the grouping logic without modifying code. -
Drag-and-drop interaction
Supports dragging projects into or out of groups. During dragging, an insertion indicator line with a 2px height precisely shows the target drop position. Drag-and-drop reordering is supported both within groups and between top-level projects. -
Zero-intrusion persistence
All manual operations, including group creation, sorting, and renaming, are written to the plugin’s own override file (~/.dsh/workspace-groups.manual.json), using atomic writes to ensure data integrity. The plugin never modifies DSH core storage files (~/.dsh/storages/workspace.).
Installation and Enablement¶
Before installing, make sure DeepSeek Harness is installed (the dsh command is available) and that the target configuration profile has been initialized, such as the built-in web profile.
- Install the plugin
Run the following command to add the plugin to the Web configuration profile:
dsh plugin --profile web add github:z-col/dsh-workspace-groups
- Restart the service
Plugin loading depends on the packaging layer, so you must restart the Web configuration profile after installation for changes to take effect:
dsh web
- Verify the installation
Check the configuration output to confirm that the plugin has been recognized:
dsh --profile web --dump-config | grep -A3 workspace-groups
The expected output should include `id: workspace-groups` and related configuration information.
Configuration and Usage¶
- Configuration file location
The default configuration file is located in the.dshfolder under the user’s home directory:
~/.dsh/workspace-groups.yaml
You can also specify a different path using the environment variable `$DSH_HOME`.
- YAML rule configuration
The configuration file defines category names and their matching rules. The rules are combined with a logical OR, categories are matched in order, and the first matching rule takes priority.
categories:
- name: DSH 插件
rules:
- pathPrefix: /path/to/special/folder
- nameContains: plugin
- basenameContains: plugin
- name: 个人项目
rules:
- pathPrefix: /path/to/personal
- Category priority
The plugin follows this priority logic:- Manual override: Groups specified directly through drag-and-drop menus or operations have the highest priority.
- YAML rules: Automatic categorization is applied when projects match the configured rules.
- Top level: Projects that do not match any rule are displayed at the top level; there is no separate “Uncategorized” group.
Notes¶
- Restart requirement: Installing or uninstalling the plugin, as well as modifying the configuration file, requires restarting the Web configuration profile for the changes to fully take effect.
- Data safety: The plugin uses an atomic write mechanism. Invalid configuration writes return a 400 error and preserve the original file, preventing data loss.
- License: This plugin is open-sourced under the MIT License.
Conclusion¶
By introducing category levels and rule-based management, the dsh-workspace-groups plugin solves the management complexity that can occur in the DSH Web client when handling multiple projects. It preserves DSH’s plugin-based ecosystem while ensuring system stability through a zero-intrusion design.
- Catalog page: https://www.skillhub.cn/plugins/z-col/dsh-workspace-groups
- Source repository: https://github.com/z-col/dsh-workspace-groups