Enhanced workspace directory browser for the web UI: one-click access to /mnt Windows drives under WSL, full breadcrumb ancestry and an always-visible path input.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-wsl-workspace-picker
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:WilliamShi666/dsh-wsl-workspace-picker
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Enhanced workspace-directory browser for the DeepSeek Harness web UI: quick access to /mnt Windows drives, full breadcrumb ancestry from the filesystem root, and an always-visible path input.
| 中文说明 |
Screenshot

The enhanced "Select Workspace Directory" dialog: quick-access chips for /mnt Windows drives at the top, the always-visible path input, and full breadcrumbs from /.
Why
The stock in-app directory picker (the dialog behind the sidebar workspaces "+" button and the conversation-hero workspace picker) starts at the Linux home directory and folds its breadcrumbs at home. Under WSL, Windows drives live at /mnt/c, /mnt/d, … — reachable only by typing a path into a barely visible pencil-glyph editor that most users never find, and never clickable through the breadcrumbs at all.
This plugin shadows the stock dialog with a single-pane browser that makes every path reachable:
- Quick-access chips — Home,
/,/mnt,/mnt/c,/mnt/d,/mnt/e,/mnt/f— one click to any Windows drive under WSL. - An always-visible path input — type any absolute path (e.g.
/mnt/d/projects) and press Enter. - Full breadcrumb ancestry from
/— click up and down through the whole filesystem; no more home-folding dead end. - New-folder creation and a hidden-files toggle, like the stock dialog.
Install
dsh plugin --profile web add dsh-wsl-workspace-picker
Restart dsh web and refresh the browser page. Open the workspace picker via the sidebar workspaces "+" button (or the conversation-hero workspace picker) — the enhanced dialog appears in place of the stock one.
Uninstall:
dsh plugin --profile web remove dsh-wsl-workspace-picker
How it works
The browser half of this dual-face package registers into both directoryFlow slots (sidebar.workspaces.directoryFlow and conversation.hero.workspace.directoryFlow) at slot priority −10. DSH's slot system is shadowing: the lowest-priority occupant of a slot renders, so priority −10 replaces the stock browse dialog (registered at priority 0) in both entry points. The stock plugin stays loaded and untouched, and uninstalling this plugin restores it.
The listing itself reuses the host's existing browse capability over the client runtime (ctx.workspaces.listDirectory / createDirectory) — no host-side code, no filesystem access of its own.
dsh-wsl-workspace-picker/
├── package.json # dsh.bundle.patch + dsh.client (dual-face declaration)
├── cordis.patch.yml # loader-entry insertion
├── scripts/build.mjs # ESBuild: src/ → lib/
├── src/
│ ├── client.tsx # browser half (TypeScript source)
│ ├── styles.ts # dialog stylesheet + injection
│ └── index.ts # host half (empty apply)
└── lib/
├── index.js # host half (built)
└── client.js # browser half (built: __ModuleLoader__ bundle)
The browser half is written in TypeScript and compiled with ESBuild
(npm run build). Runtime imports (react, react/jsx-runtime,
@deepseek-ai/dsh-client-ui-primitives, …) are external: they resolve
through the web shell's module table at load time, exactly like the official
client bundles. npm run typecheck runs tsc --noEmit.
Compatibility
- DeepSeek Harness
0.1.0-rc.6and later (web profile) - Any host where
/mnt/<drive>Windows mounts exist (WSL); on other hosts the chips simply list directories that may not exist - Locales: English, 简体中文 (follows your UI language)
Security & scope
Pure UI plugin. It adds no host-side behavior, opens no network connections, and only lists/creates directories through the same host browse capability the stock dialog already uses — with whatever file-sandbox policy your profile has in effect.
License
MIT
Links
More in this category
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 4430
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
omdsh-dev/DSH-better-sidebar★ 2101
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
ccch1mneyyy/dsh-TUI★ 1924
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/dsh-at-file★ 362
Codex-style `@file` mentions: search workspace files in the composer and attach their contents to prompts.
omdsh-dev/dsh-genui★ 214
Interactive UI components rendered inline in replies: layout, charts, forms, quizzes, mermaid, 3D scenes, and an action event loop back to the model.
huiliyi37/dsh-tianshu-tui★ 211
A terminal UI (TUI) for DeepSeek Harness.