tsingshitao-nuke/dsh-set-workspace
Right-click a folder in Windows File Explorer to open it as a DeepSeek Harness (DSH) workspace: register, launch DSH, and switch the page to it. 资源管理器右键「在此处打开 DSH 工作区」。
项目介绍Project Overview
该插件为Windows文件资源管理器添加右键菜单项“在此处打开DSH工作区”,可将文件夹注册为DSH工作区、启动会话并自动切换页面。适用于快速从文件夹启动DSH工作。需注意:Windows 11中该菜单项可能需点击“显示更多选项”才能看到。
This plugin adds a Windows File Explorer context menu entry, "Open DSH Workspace Here," to register a folder as a DSH workspace, start a session, and switch the DSH page to it. Use it to quickly launch DSH work from any folder. Note: on Windows 11, the menu item may appear under "Show more options" (Shift+F10).
请帮我了解并安装插件:【dsh-set-workspace】【https://github.com/tsingshitao-nuke/dsh-set-workspace】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add github:tsingshitao-nuke/dsh-set-workspace
把 tsingshitao-nuke/dsh-set-workspace 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-set-workspace
Adds a Windows File Explorer context menu entry: right-click a folder and pick "Open DSH Workspace Here" to register it as a DSH workspace, start a session in it, and switch the DSH page to that workspace.
Unofficial community project. Not affiliated with or endorsed by DeepSeek.
What it does
- Right-click a folder in File Explorer, then choose Open DSH Workspace Here.
- If DSH is not running, the bridge launches it — the Desktop app, or the official
dshCLI in npm installs; if it is running (even minimized or in the background), the DSH window is restored and brought to the front. - The folder is registered as a workspace (idempotent) and a session is started in it.
- The DSH page switches to the new workspace automatically (the client half watches for the session and opens it — no page reload).
- If you view DSH in a regular browser instead of the Desktop window, install with
--browser; the bridge then focuses the browser page. - Menu label and dialogs follow the OS UI language (Chinese / English).
- The action runs through a
wscripthidden-window launcher, so no console window flashes. - The menu item uses the DSH whale icon.
- No new storage, schema, or tools — it reuses the core workspace registry and the existing
/apiRPCs.
Install
Requirements: Windows, Node.js >= 20 on PATH, and a DSH installation — the DSH Desktop app or the official CLI (npm i -g @deepseek-ai/dsh). The bridge launches DSH automatically when it is not running; it discovers the launch path from a runtime file that DSH writes, so run DSH once before the first use.
One-liner (PowerShell 5.1+ / pwsh):
irm https://raw.githubusercontent.com/tsingshitao-nuke/dsh-set-workspace/main/scripts/install.ps1 | iex
Git Bash / WSL:
curl -fsSL https://raw.githubusercontent.com/tsingshitao-nuke/dsh-set-workspace/main/scripts/install.sh | bash
Manual install:
# 1. install the bundle
dsh plugin --profile web add github:tsingshitao-nuke/dsh-set-workspace
# 2. register the Explorer context menu (restart DSH first so the host half publishes the port)
node ~/.dsh/profiles/web/node_modules/dsh-set-workspace/bin/install-context-menu.cjs
Remove the menu (keeps the bundle installed):
node ~/.dsh/profiles/web/node_modules/dsh-set-workspace/bin/install-context-menu.cjs --uninstall
How it works
File Explorer right-click
└─ wscript launch-hidden.vbs "%1" (hidden window)
└─ node set-workspace.cjs "<folder>"
├─ reads ~/.dsh/dsh-set-workspace/runtime.json (port + launch command)
├─ launches the DSH Desktop app — boots it when down, and when it is
│ already running the app's own single-instance handler restores,
│ shows and focuses its window (same trick as VS Code "Open with Code")
├─ polls until /api is ready
├─ POST /api/workspace.create { path } (idempotent)
├─ POST /api/session.create { workspaceId, sessionId: "dsw-open-…" }
└─ MessageBox confirmation
The DSH client half watches the session list, opens the "dsw-open-…" session,
and the page switches to the workspace.
Browser mode: when DSH is served into a regular browser, run the installer with
`--browser` (or write `{"ui":"browser"}` to ~/.dsh/dsh-set-workspace/config.json).
The bridge then focuses the browser page via the loopback URL instead of the
Desktop window.
The bundle is a standard host/client dual-half DSH package. The host half (src/index.ts) writes the current webserver port and the Desktop launch command to ~/.dsh/dsh-set-workspace/runtime.json. The client half (src/client/index.ts) performs the switch. The bridge script, whale icon, and launcher are copied to ~/.dsh/dsh-set-workspace/ (space-free, stable across reinstalls); the registry entries live under HKCU\Software\Classes\Directory\shell (no admin rights).
Compatibility
- DSH Desktop (Tauri / Electron): the host records the app executable; the bridge launches it to boot DSH, and when it is already running the app's own single-instance handler restores and focuses the window (VS Code "Open with Code" pattern).
- Official CLI / npm install (
npm i -g @deepseek-ai/dsh, DSH served into a browser): the host records thedsh weblaunch command (the same node +lib/bin.jsthe running kernel uses, with--no-open --host 127.0.0.1 --port <port>); the bridge boots DSH through it when it is down and focuses the browser page — no desktop window required. - The launcher type is re-detected every time the host starts, so the same plugin adapts to whichever install you upgrade to.
Build
npm install
npm run build # host (tsc) + client (tsdown -> lib/client.js)
Known limitations
- On Windows 11, third-party
Directory\shellverbs may appear under "Show more options" (Shift+F10) instead of the top-level menu. Putting them at the top level requires a COMIContextMenuhandler, which this plugin does not ship. - The bridge talks to the host over loopback. It launches DSH when the host is down, but if DSH has never run (so no launch path is recorded), it falls back to asking you to start DSH first.
- Browser mode focuses the browser and opens the DSH page; Windows has no cross-browser API to activate a specific existing tab, so it may open a new tab instead of switching to an already-open one.
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS