Introduction¶
DeepSeek Harness (DSH) adopts an “everything is a plugin” architecture. By default, if no workspace is selected, the session input box is determined to be inactive (inert) by the kernel. The dsh-temp-session plugin breaks this limitation by introducing the concepts of “optional workspace selection” and “workspace-free temporary sessions”. It allows users to start sessions without a fixed workspace context. Each temporary session exclusively occupies a dedicated directory, and blank sessions naturally disappear after a restart.
Core Features¶
The plugin mainly provides the following capabilities:
- Optional workspace selection: The Hero workspace entry displays “Select Workspace (Optional)”. Click the button to open the selection menu; other areas of the button can still select a workspace normally.
- Workspace-free temporary sessions: If no workspace is selected, clicking “New Session” in the sidebar creates a temporary session.
- Independent directory sessions: A temporary session exclusively occupies the directory
$DSH_HOME/tmp-sessions/session-<uuid>(by default~/.dsh/tmp-sessions/…). The session’s cwd, sandbox write boundary, and sidebar grouping (Ungrouped) are all based on this directory. - Kernel client patch: It patches the kernel client to remove the
workspaces.phase === "ready"condition, keeping the input box of workspace-less sessions usable. - Suppress desktop client feature: It suppresses the built-in “Ungrouped” new session feature in the desktop client (dsh-tauri >= 0.15.9) to prevent conflicts.
Installation and Activation¶
Installing the plugin requires writing the dependency into the configuration file and restarting the Harness process.
- Install the plugin:
Use the official installation command. The plugin will be written into the dependencies in~/.dsh/profiles/web/package.jsonanddsh.profile.bundles.
dsh plugin --profile web add dsh-temp-session
-
Configuration manifest:
Make suredsh.profile.bundlesin~/.dsh/profiles/web/package.jsoncontains the plugin name. -
Activation:
After changing the configuration, you must restart the Harness process for the changes to take effect. For the desktop version, quit and reopen the app; for the web interface, restart the kernel.
Usage Notes¶
After installation and restart, the experience differs from the native behavior:
-
Workspace entry interaction:
- No workspace selected: The Hero workspace entry displays “Select Workspace (Optional)”.
- Workspace selected: When the mouse hovers over the button, the arrow automatically changes to ×. Click × to deselect; clicking other areas of the button still opens the workspace selection menu.
-
New session:
- Click the general “New Session” button in the sidebar (when no workspace is specified) to create a temporary session by default.
- The
+in a workspace row still creates a session for that workspace, preserving the original behavior.
-
Temporary session directory:
Temporary sessions are located in$DSH_HOME/tmp-sessions/session-<uuid>. After restarting Harness, blank temporary sessions that have no sent messages disappear automatically.
Compatibility and Notes¶
- Version compatibility: Compatible only with dsh versions
0.1.2-rc.xthrough0.1.7-rc.1. After upgrading to 0.1.7-rc.1, restart the process to apply dependency changes. - Desktop client restrictions: The built-in “Ungrouped” new session feature in the desktop client (dsh-tauri >= 0.15.9) is suppressed by this plugin. The
+buttons in the sidebar and group rows are handled by this plugin’s logic. - Sandbox boundary: The
workspace-writewrite boundary for temporary sessions is the session’s dedicated directory. The read boundary is unrestricted (default dsh behavior); isolation is mainly implemented through directory isolation.
Summary¶
The dsh-temp-session plugin provides DSH users with a more flexible session management approach through kernel patches and directory isolation. Without disrupting existing workspace logic, it supports temporary development in a no-workspace context. For related source code and documentation, refer to its GitHub repository or the plugin ecosystem directory.