插件目录 / Developer / dsh-exec-extension
dsh-exec-extension
已验证 · 实测可装 LvDAO
功能简介
An exec extension for headless dsh runner allowing more flags etc.
可用 — 实测通过,早期项目
An exec extension for headless dsh runner allowing more flags etc. 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-exec-extension
A DeepSeek Harness bundle for one-shot exec, in the same shape as official surface plugins (dsh.bundle.patch + parseCmdline + commander). Stock headless-startup only declares [task...]; this bundle disables that row and inserts a replacement that still provides headlessStartup.task for unmodified headless-runner.
The CLI follows OpenCode run and Pi -p: piped stdin is merged into the prompt, @file / -f attaches files, --format json streams session events, --dir sets cwd, --yolo skips permission prompts (it does not disable the sandbox). Model overlay is in-process (Rust WASM) and never writes $DSH_HOME/settings.yaml.
Install
dsh plugin --profile exec add @deepseek-ai/dsh-headless@$(npm view @deepseek-ai/dsh version)
dsh plugin --profile exec add dsh-exec-extension
dsh --profile exec --help
Follow the same npm latest channel as the dsh CLI (npx @deepseek-ai/dsh / npm install --global @deepseek-ai/dsh). Do not use @next unless you installed dsh@next. @deepseek-ai/dsh-headless has a stale latest tag, so the first line takes the CLI's latest version instead of headless's own. dsh-exec-extension uses its own latest. Freeze with @<version> only when you need a snapshot. npm install does not need a prepare allowlist.
Git fallback: dsh plugin --profile exec add github:LvDAO/dsh-exec-extension
Dedicated profile only. Stock dsh --profile headless --model x "t" must still fail.
CLI
dsh --profile exec [options] [--] [task|-]
cat README.md | dsh --profile exec "summarize this"
dsh --profile exec @notes.md --full-auto "use the notes"
| Flag | Meaning |
|---|---|
-m, --model |
This-process model (never part of the task) |
--effort, --reasoning-effort |
off|high|max |
--thinking |
Pi thinking tiers; xhigh/max → max, minimal/low/medium/high → high |
--provider |
This-process provider |
-C, --cwd / --cd / --dir |
Working directory (published on headlessStartup.cwd) |
--timeout <seconds> |
appExit(1) after N seconds |
-s, --sandbox / --permission-mode |
read-only | workspace-write | danger-full-access |
--approval ask|never|allow |
ask fail-closes without a UI; never auto-denies; allow auto-grants |
--full-auto |
workspace-write + auto-allow (CI) |
--yolo / --dangerously-skip-permissions |
Skip permission prompts (auto-allow). Does not set danger-full-access; default sandbox stays workspace-write. Unrestricted access is --sandbox danger-full-access |
--tools-mode native|code|both |
Tools presentation |
-f, --file / @path |
Attach file text into the task |
--output-schema <path> |
Prompt-level JSON Schema constraint (not constrained decode) |
-o, --output-last-message <path> |
Also write the final assistant text |
--format text|json / --mode json |
json is session-event JSONL |
-c, --config key=value |
Repeatable this-process overlay |
--env KEY=VALUE / --api-key |
Process env only (not written to disk) |
--print-selection |
Print overlaid selection JSON and exit |
Unknown flags error. Overlay never calls saveSelection().
--output-schema is a prompt constraint, not constrained decoding. --approval allow and --yolo install a process-local auto-grant because dsh never auto-denies and headless has no UI. --yolo does not set danger-full-access; use --sandbox danger-full-access for unrestricted tools.
headlessStartup is { task, cwd, permissionMode, approvalPolicy, autoApprove, toolsMode?, format }. sandbox-policy, approval, and tools inject that service (!!js ctx.headlessStartup.*). Stock headless-runner still only reads task.
Non-goals
MCP, Host, HTTP, resume, --image, forking headless-runner. Put MCP on the profile patch + process env, not on this CLI.
Develop
Node ≥ 22.19. WASM is committed; prepare skips rustc.
npm test
DSH_BIN=/path/to/dsh npm run acceptance
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-exec-extension」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:LvDAO/dsh-exec-extension Headless(CLI)profile:
dsh plugin --profile headless add github:LvDAO/dsh-exec-extension 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。