DeepSeek Harness 插件

dsh-open-in

Open a workspace directory from the DSH web GUI in a configurable launcher (VS Code / file explorer / Windows Terminal / any CLI).(英文原文)

跳到安装方式

来源信息

GitHub 仓库
NevermindZZT/dsh-open-in
最近更新
2026年8月20日
分类
插件开发工具
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/NevermindZZT/dsh-open-in
插件名:dsh-open-in
作者:NevermindZZT

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-open-in

!version !license ![GitHub](https://github.com/nevermindzzt/dsh-open-in)

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
KeyDefaultMeaning
targets[].idStable 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[].commandper targetExecutable that opens a directory, resolved through PATH.
targets[].argsper targetExtra arguments passed before the directory path.
targets[].platforms[]Platform allowlist (win32/darwin/linux); empty = every platform.
targets[].enabledtrueDisabled 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

ActionWhereApproval
Open a workspace directory in a configured launcherHost (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