dshbase

Plugin directory / UI & Skins / dsh-open-in

dsh-open-in

Verified · install-tested on dsh NevermindZZT

✓ Actively maintained Builds on 12 official DSH packages

View on GitHub ↗ ← Back to plugin directory

0Stars
0Forks
0Open issues
—Language
2026-08-20Last push
Cross-platformPlatform

What it does

Open a DeepSeek Harness workspace directory in a configurable launcher (VS Code / file explorer / Windows Terminal / any CLI) from the web GUI.

✅
Our take
Works — verified, early-stage project

Open a DeepSeek Harness workspace directory in a configurable launcher (VS Code / file explorer / Windows Terminal / any CLI) from the web GUI. It installs cleanly and boots without issues in our testing. It's early-stage but functional.

“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

README

dsh-open-in

version
license
GitHub

Open a DeepSeek Harness workspace directory in a launcher of your choice —
VS Code, File Explorer, Windows Terminal, or any command-line tool you
configure — directly from the web GUI. Every real Workspace row in the
sidebar gets an … overflow menu entry per configured target
("Open in VS Code", "Open in File Explorer", "Open in Terminal", …).

Features

  • Configurable targets: a targets array — each target has id, label,
    command, args, an optional platforms allowlist and an enabled
    switch. Shipped defaults: vscode, explorer, terminal.
  • Settings UI (add / edit / remove): Settings → Plugins → the "Open In"
    card edits the targets with a structured form — add a row, change any
    field, remove a row, Save. Edits write the durable user settings document
    and apply to the next launch immediately (no restart).
  • Per-platform mapping for built-ins: while a built-in target keeps its
    default command line, it follows the host platform automatically
    (explorer → open on macOS / xdg-open on Linux; terminal → wt -d /
    open -a Terminal / gnome-terminal --working-directory). Any explicit
    customization is authoritative.
  • Menu integration, both runtimes: newer DSH runtimes use the native
    sidebar.workspaces.row-menu slot; the published 0.1.0-rc.6 (which lacks
    that slot) is served by a compatibility DOM adapter. Both paths render
    locale-following rows (中文 / English).
  • Host launch: the configured executable is spawned detached with the
    directory as the last argument; the launcher outlives the server. Relative
    paths are refused, and only configured commands ever run (the client only
    sends a target id + path).

Prerequisites

  • DSH 0.1.0-rc.6 or newer (web profile).
  • The tools you configure must be installed: VS Code CLI (code) on PATH,
    wt (Windows Terminal) on PATH, etc. The Windows default code command
    also searches the standard per-user/system VS Code install locations.

Install

Add the plugin to your web profile (runs pnpm inside the profile and
reconciles the bundle layer). From the npm registry:

dsh plugin --profile web add dsh-open-in

Or directly from GitHub:

dsh plugin --profile web add github:NevermindZZT/dsh-open-in

Or pin a release tag:

dsh plugin --profile web add https://github.com/NevermindZZT/dsh-open-in/archive/refs/tags/v0.1.1.tar.gz

All paths ship the prebuilt lib/, so git/tarball installs need no build
step and no build approval. Restart the web server, then refresh the page.
The host plugin mounts as dsh-open-in; the client bundle is served at
/plugins/dsh-open-in/client.js.

Verify the layer composed:

dsh --profile web --dump-config | grep dsh-open-in

Configure

Two layers compose the effective targets (highest wins): the user settings
document
(written by the Settings UI) → the cordis.yml entry (see
below) → schema defaults. The Settings card is the recommended path for
day-to-day changes; cordis.yml stays the deployment-composition path.

Settings UI

Open Settings → Plugins → "Open In" (the card sits in the configurable
plugins tab). Rows mirror the current targets: edit any field, remove a row,
or Add target for a new one. Fields: id (unique, non-empty), label
(empty = built-in copy), command (executable), args (comma/space
separated), platforms (comma/space separated win32/darwin/linux;
empty = all), enabled. Invalid rows (empty/duplicate id, empty command)
block the Save; Save writes the whole list to the durable settings
document and applies immediately.

cordis.yml

Deployment-varying options are validated Config fields editable in
cordis.yml (your profile's cordis.patch.yml). Because a patch replaces a
row's whole config value, spell out every key you customize:

- update:
    - id: dsh-open-in
      config:
        targets:
          - id: vscode
            label: ''
            command: code
            args: []
            platforms: []
            enabled: true
          - id: explorer
            label: ''
            command: explorer
            args: []
            platforms: []
            enabled: true
          - id: terminal
            label: ''
            command: wt
            args: ['-d']
            platforms: []
            enabled: true
          - id: cursor
            label: 'Cursor'
            command: cursor
            args: []
            platforms: []
            enabled: true
Key Default Meaning
targets[].id — Stable id; the client references targets by id (must be unique).
targets[].label '' Menu label; empty falls back to the target.<id> locale key, then the id.
targets[].command per target Executable that opens a directory, resolved through PATH.
targets[].args per target Extra arguments passed before the directory path.
targets[].platforms [] Platform allowlist (win32/darwin/linux); empty = every platform.
targets[].enabled true Disabled targets are never listed or launched.

A missing executable fails loud with a fix hint; relative paths are rejected.
Targets edited in the Settings UI override the cordis.yml entry entirely
(the settings user layer replaces the targets field).

Capability boundary

Action Where Approval
Open a workspace directory in a configured launcher Host (user gesture) No — the user clicked the row

The plugin contributes no tools, no skills, and no model-visible surface; it
only launches programs the user configured on directories the user already
opened in DSH.

Development

pnpm install
pnpm run check   # typecheck + test + build

The prebuilt lib/ is committed; a release only needs a version bump, a
build, and a tag.

License

MIT

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install dsh-open-in for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

Web profile:

dsh plugin --profile web add github:NevermindZZT/dsh-open-in

Headless (CLI) profile:

dsh plugin --profile headless add github:NevermindZZT/dsh-open-in

Test report

Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.

Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in UI & Skins

Browse all 7819 plugins →