Add an "Open in VSCode" option to the right-click menu in the DSH web interface workspace. Clicking it opens the workspace directory in the local VS Code, eliminating the need to manually locate the path.
- Language
- JavaScript
- License
- MIT
- Branch
- main
Install
$ dsh plugin --profile web add github:omdsh-dev/dsh-open-in-vscodeRun the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial
Install via your agent
Install the DeepSeek Harness plugin omdsh-dev/dsh-open-in-vscode for me: review the repository at https://github.com/omdsh-dev/dsh-open-in-vscode first, then run the install command and verify the plugin loads successfully.
Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.
One-liner
In DeepSeek Harness's web interface, adds an "Open in VSCode" option to the "..." menu of each workspace in the sidebar. Clicking it opens that workspace's directory in the local VS Code, eliminating the need to manually copy the path and run commands in the terminal.
Core Features
- Injects an editor entry into the overflow menu of workspace rows, with icon and hover styling following the interface theme
- Clicking it directly launches the editor to open that workspace's directory, with the menu automatically closing first
- Menu text adapts to the interface language: Chinese shows "在 VSCode 中打开", English shows "Open in VSCode"
- Supports replacing the editor command with any other editor besides VS Code, with additional launch arguments supported
- On Windows, when using the default command, automatically searches common VS Code installation directories without requiring PATH to be configured
- The editor is launched as an independent process; restarting or exiting the DSH service will not close any already-open editor windows
Technical Implementation
- Language: TypeScript (including React TSX client components)
- Key Dependencies: zod (data validation), @deepseek-ai/dsh-typert-protocol (client-server communication channel), @deepseek-ai/dsh-client-ui-slots (UI slots), react
- Architecture Pattern: The plugin is divided into server-side and browser-side halves. The server registers a strictly validated remote call endpoint
openInVscode/open, launching the editor via Node child process in detached mode; the browser-side registers the menu item into the host'ssidebar.workspaces.row-menuslot, and on click passes the directory path to the server through this endpoint. If the host version doesn't provide this slot yet, a DOM-observation-based compatibility adapter is enabled and automatically removed when the native slot is detected. - Entry Files:
src/index.ts(server-side),src/client/index.ts(browser-side)
Use Cases
Suitable for people who frequently switch between multiple workspaces in the DSH web interface and need to view the same code in an editor. The previous approach was to copy the workspace directory path, then switch to a terminal or file manager to open it—this plugin compresses that step into a single menu click. The prerequisite is that the editor and DSH server run on the same machine.
Prerequisites and Compatibility
| Dependency | Minimum Version | Description |
|---|---|---|
| Node.js | ^22.19 or >=24 | Server runtime environment requirement |
| DSH | Manifest declares >=0.0.1, docs recommend 0.1.0-rc.6 and above | Uses native workspace menu slot when available, compatibility adapter for rc.6 |
| Platform | macOS / Windows / Linux | Server uses only Node built-in capabilities; Windows has additional installation directory detection for the default code command |
| UI Mode | Web interface only | The plugin's client portion declares web platform; no menu under CLI/terminal interface |
| VS Code or Other Editor CLI | None | Requires an executable that can accept a directory argument, default is code; macOS needs VS Code's command line tool installed first |
| Native Modules | None | No dependencies on any compiled native extensions |
Installation
dsh plugin --profile web add github:omdsh-dev/dsh-open-in-vscode
Configuration Options
| Option | Type | Description | Default |
|---|---|---|---|
| command | string | The editor executable to open directories, can be replaced with any editor command | code |
| args | string array | Additional launch arguments passed to the editor before the directory path | [] |
Configuration is written in DSH's cordis.yml and will be validated. Errors with fix suggestions are reported when the executable cannot be found.
FAQ
Q: The "Open in VSCode" option doesn't appear in the menu after installation. What should I do?
A: After installing the plugin, you need to restart the web server and refresh the page for the menu item to appear. The documentation explicitly requires graceful exit with kill -TERM before restarting, not kill -9.
Q: Clicking does nothing. How do I troubleshoot?
A: Failure messages are only printed to the browser console, not shown as UI prompts. Open the browser developer tools and look for errors starting with [dsh-open-in-vscode]. The most common cause is the editor command not being in PATH.
Q: macOS says it can't find the code command. How do I fix it?
A: You need to install VS Code's command line tool first (Shell Command: Install 'code' command in PATH), or change the plugin's command to another editor command that can open directories.
Q: Can I use an editor other than VS Code?
A: Yes, change the command to any executable that can accept a directory argument. You can also use args to append additional arguments. Note that only the default code command has automatic installation directory detection on Windows; other commands must be findable in PATH.
Q: Will the editor open on my computer or on the server?
A: It opens on the machine running the DSH server. If you're accessing DSH on another machine via browser remotely, the editor window will appear on that server, not on your local machine.
Q: Does this plugin read/write my files or get called by the model?
A: No. It only launches the editor process when you manually click the menu. It doesn't read or write files itself, and hasn't registered any tools or skills—models cannot see or call it.
Q: Will the editor close when I shut down the DSH server?
A: No. The editor is launched as a detached process, separating from the server after startup. Server exit does not affect already-open editor windows.
Q: Why do some workspace rows not have this menu item?
A: Only workspaces with actual directory paths will render this menu item; rows without directory information are skipped.
Difficulty Level
Beginner — Just install, restart the server, refresh the page, and it's ready to use. The default configuration targets VS Code. You only need to touch the configuration when changing editors or when macOS doesn't have the code command installed.
Known Issues and Limitations
- Launch failures only output error logs to the browser console with no visible UI prompt, making it easy for regular users to think "clicking does nothing" (
src/client/row.tsx:71-73) - The editor launches on the machine where the DSH server runs; in remote access scenarios, it cannot open directories on the local machine where the browser is running (
src/runtime.ts:37) - Only accepts absolute paths; relative paths are directly rejected with an error (
src/runtime.ts:86-88) - Workspace rows without directory paths do not display this menu item (
src/client/row.tsx:65) - The compatibility adapter for older host versions relies on DOM observation and identifies workspace menus by two menu text items ("Rename" / "Delete"); host UI text or structural changes may cause identification to fail (
src/client/legacy-menu.tsx:60-63) - Windows installation directory auto-detection only applies to the default
codecommand; custom commands still need to be ensured resolvable via PATH (src/resolve.ts:53) - The error message for VS Code not found on Windows hardcodes an old version number
0.1.5, which doesn't match the current package version and can cause confusion during troubleshooting (src/runtime.ts:51) - The client declares only the web platform; this feature is unavailable in non-web interface modes (
package.json:28-36)
Open a workspace directory in VS Code straight from the DeepSeek Harness web GUI: every real Workspace row in the sidebar gains an Open in VSCode row inside its … overflow menu.
What it does
- The client half uses the harness's
sidebar.workspaces.row-menuslot when available and falls back to a scoped compatibility adapter on the public DSH0.1.0-rc.6build. Both paths render the same locale-following menu row — 在 VSCode 中打开 under the Chinese locale, Open in VSCode under English. - The row's click closes the menu and calls the host over the strict Typert
Remote
openInVscode/open, passing the workspace directory. - The host half spawns the configured editor CLI on that directory
(
code <path>by default), detached, so the editor outlives the server.
Prerequisites
- VS Code, or an editor CLI on PATH. On Windows, the default
codecommand also discovers standard per-user and system VS Code installations. On macOS, install the VS Code shell command or set the plugincommandto any editor that opens a directory). - DSH
0.1.0-rc.6or newer. The plugin uses the native Workspace row-menu extension point where present and a compatibility adapter onrc.6.
Install
Add the plugin to your web profile (this runs pnpm inside the profile and reconciles the bundle layer):
dsh plugin --profile web add https://github.com/omdsh-dev/dsh-open-in-vscode/archive/refs/tags/v0.1.6.tar.gz
Restart the web server (kill -TERM <pid> and wait for exit — never
kill -9, it tears the session zstd log mid-frame), then refresh the page.
The host plugin mounts under dsh-open-in-vscode; the client bundle is
served at /plugins/dsh-open-in-vscode/client.js.
The versioned tarball replaces older pinned commits without running a git
prepare script. Confirm the installed version with:
dsh plugin --profile web list dsh-open-in-vscode --depth 0
Configuration
Deployment-varying choices are validated Config fields, changeable from
cordis.yml:
| Key | Default | Meaning |
|---|---|---|
command | code | Executable that opens a directory. The default also probes standard Windows VS Code install locations; other commands resolve through PATH. |
args | [] | Extra arguments passed before the directory path. |
A missing executable fails loud with a fix hint; relative paths are refused.
Capability boundary
| Action | Runs where | Requires approval |
|---|---|---|
| Open a workspace directory in the editor | Host (user gesture) | No — the user clicked the row |
| Anything else | — | The plugin has no tools, no settings namespace, and no model-facing surface |
The plugin adds no tools, no skills, and no settings; it only opens the directory the user already opened in DSH. It never reads or writes files itself.
Development
pnpm install
pnpm run check # typecheck + lint + test + build; commit lib/ (file: installs run without a build)
Layout: the wire contract lives in one module (src/contract.ts) shared by
the host manifest (src/typert.ts) and the client contribution
(src/client/remote.ts); the harness owns the slot declaration and the
Menu node-entry kind this plugin composes through.
License
MIT
Read the usage guide →
Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.
Listing badge
[](https://deepseek-plugin.org/plugins/omdsh-dev/dsh-open-in-vscode)Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.