Open DSH workspace directories in VS Code directly from the web GUI.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:omdsh-dev/dsh-open-in-vscode
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 — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
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
Links
More in this category
xmanrui/dsh-im★ 3118
Connect IM bots to DeepSeek Harness via QR codes or bot credentials (9 channels: Feishu, WeChat, DingTalk, WeCom, QQ, Slack, Telegram, Discord, and WhatsApp).
shaobeichen/dsh-pocket★ 2685
Remote phone access to the DSH Web UI: scan a QR code for LAN or public (cloudflared tunnel) access with real-time sync, a mobile-adaptive layout, and a settings tab.
OpenPetsHQ/openpets#dsh★ 1373
Bridges DeepSeek Harness lifecycle status, errors, and approval requests to a locally running OpenPets desktop companion.
c1overzz/dsh-bili-scroll★ 1150
Let your DSH agent browse Bilibili on its own, read subtitles, write a daily digest, and @ you when it finds something worth your attention.
inclusionAI/Avernet#deepseek-harness-channel-bcn★ 599
Connects DeepSeek Harness to Avernet's Bot Collaboration Network over WebSocket V2, with automatic onboarding, isolated agent sessions, tool-call events, and multi-bot routing tools.
zaofan-make/dsh-qqbot★ 213
QQ official bot channel (enhanced fork of tencent-connect/dsh-qqbot): full agent chat in groups and DMs, rich media, an auto-tagged sticker library with AI image replies, join approval, mute and broadcast, scheduled wakeups, remote approvals over QQ, interactive cards, multi-account instances, extensions, member profiles, and token-saving value-scored wakeups.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.