dsh-workspace-explorer-picker
No description
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 26, 2026
- Updated
- Aug 26, 2026
Introduction
dsh-workspace-explorer-picker
A DeepSeek Harness Desktop plugin that opens the native Windows Explorer folder picker directly when you add a workspace - no more in-app directory browser.
Clicking Add workspace in DeepSeek Harness Desktop normally opens a directory browser rendered inside the web GUI. This plugin skips that dialog entirely and opens the real Windows Explorer folder chooser immediately - the same native dialog the shell already uses for its "Choose with Windows" action.
Features
- Opens the native Windows Explorer folder dialog directly from "Add workspace" (both the conversation hero and the sidebar).
- Renderless client plugin - no UI of its own to maintain.
- Uses the desktop shell's own picker (Electron
dialog.showOpenDialog) - full Explorer experience (Quick Access, breadcrumbs, search, New folder). - Survives DSH Desktop updates: installed under
$DSH_HOME(user profile), never insideProgram Files. - Idempotent installer (
install.ps1) for quick setup on any machine. - No volume restrictions: pick any accessible folder, including exFAT/FAT32 and network volumes.
- Market-ready: declares
dsh.bundle.patch, so it can be installed from the DSH Community Market / npm.
Table of Contents
- Requirements
- Install
- Market & npm
- How it works
- Uninstall
- Troubleshooting
- Development
- Publishing
- License
Requirements
| Requirement | Detail |
|---|---|
| OS | Windows (the Explorer chooser is a Windows-only shell feature) |
| App | DeepSeek Harness Desktop (the Electron desktop app) |
| GUI entry | The app window, or the browser tab the app opens (the desktop picker bridge must be present) |
Outside the desktop shell, the plugin falls back to the host directory-picker seam.
Install
Automatic (recommended)
Requires PowerShell. From the repository root:
powershell -ExecutionPolicy Bypass -File .\install.ps1
What it does:
- Copies the plugin into
$DSH_HOME\profiles\node_modules\dsh-workspace-explorer-picker\($DSH_HOMEdefaults to~/.dsh). - Appends the activation rows to
$DSH_HOME\profiles\desktop\cordis.patch.yml. - Prints a confirmation - then restart DeepSeek Harness Desktop.
The script is idempotent: re-running it is safe.
Manual
- Copy the
libfolder,cordis.patch.ymlandpackage.jsonto$DSH_HOME\profiles\node_modules\dsh-workspace-explorer-picker\. - Append to
$DSH_HOME\profiles\desktop\cordis.patch.yml:
- id: directory-picker
disabled: true
- insert:
- id: directory-picker-explorer
name: 'dsh-workspace-explorer-picker'
- Restart DeepSeek Harness Desktop.
Verify
After restarting, click Add workspace - the Windows Explorer folder dialog
should open immediately. If nothing happens, check the logs under
%APPDATA%\DSH Desktop\logs\ (see Troubleshooting).
Market & npm
DeepSeek Harness Desktop's Community Market installs plugins from npm when the
package declares a dsh.bundle.patch (this plugin does - see
cordis.patch.yml). The bundle patch disables the stock adaptive picker and
inserts this plugin, so the manual profile patch above is not needed when the
plugin is installed as a bundle.
-
Publish to npm so the market can resolve an install target:
npm login npm publish -
Get listed in a catalog (e.g. dshfind): submit your package at
https://dshfind.comfollowing their submission flow. The catalog verifies the repository backlink (repositoryinpackage.jsonpoints to your GitHub repo) before accepting structured install evidence. -
Users install it from the market (Plugins / Market in DSH Desktop settings): the Host runs
pnpm add dsh-workspace-explorer-picker, applies the bundle patch, and adds it to the profile bundles.
How it works
DeepSeek Harness Desktop composes its web GUI from Cordis bundles and applies a
user patch layer from $DSH_HOME/profiles/<profile>/cordis.patch.yml. The stock
"add workspace" flow fills a UI slot with the in-app directory browser.
This plugin is a renderless client plugin that occupies the same directory-flow
slots (conversation.hero.workspace.directoryFlow and
sidebar.workspaces.directoryFlow) and, on each open, picks a folder:
window.__DSH_DESKTOP_PICK_DIRECTORY__- the DSH Desktop shell bridge (Electrondialog.showOpenDialogwithopenDirectory) - the Windows Explorer folder dialog.- Fallback: the host
workspaces.pickDirectory()directory-picker seam.
The patch row directory-picker (the stock adaptive picker) is disabled so the
in-app browser never appears.
Because everything lives under $DSH_HOME, updates to DSH Desktop (which replace
Program Files) never touch the plugin.
Uninstall
- Remove the patch rows from
cordis.patch.yml(see Manual install). - Delete
$DSH_HOME\profiles\node_modules\dsh-workspace-explorer-picker. - Restart DeepSeek Harness Desktop.
Troubleshooting
| Symptom | Cause / Fix |
|---|---|
| "Add workspace" still opens the in-app browser | The app was not restarted, or the patch was not applied. Re-run install.ps1 and restart DSH Desktop. |
| Nothing happens when clicking "Add workspace" | The plugin failed to activate. Check %APPDATA%\DSH Desktop\logs\ and confirm the package folder exists under profiles\node_modules. |
| The picker opens but the workspace is rejected | The workspace service validates the path server-side; pick a directory you can read and write. |
| Pick falls back to the host seam unexpectedly | The GUI was opened without the desktop bridge (e.g. a manually typed URL). Open the GUI through the app instead. |
Development
The loader only needs package.json (with the dsh.client and
dsh.bundle.patch declarations) and lib/. There is no build step:
lib/client.js is a window.__ModuleLoader__.load bundle mirroring the
structure of the official @deepseek-ai/dsh-client-ui-directory-picker-native
plugin.
dsh-workspace-explorer-picker/
|-- lib/
| |-- index.js # host half (no-op; the plugin is client-only)
| |-- client.js # browser half: renderless directory-flow occupant
| `-- types/ # TypeScript declarations
|-- cordis.patch.yml # bundle patch (dsh.bundle.patch) - activates the plugin
|-- install.ps1 # idempotent installer for the profile
|-- package.json # dsh.client + dsh.bundle.patch declarations
|-- README.md
`-- LICENSE
Publishing
npm
npm login
npm pack # produce the .tgz (verify the contents)
npm publish
git tag v1.0.0
GitHub
git remote add origin https://github.com/liell/dsh-workspace-explorer-picker.git
git push -u origin main
License
MIT - see LICENSE.