yaways/dsh-subagent-claude-code-wrapper
dsh-subagent-claude-code-wrapper
Let DSH subagents call any Claude-compatible CLI, not just the SDK-bundled one. Fork of @deepseek-ai/dsh-subagent-claude-code.
Install
npx @deepseek-ai/dsh plugin --profile web add /path/to/dsh-subagent-claude-code-wrapperRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-subagent-claude-code-wrapper)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from yaways/dsh-subagent-claude-code-wrapper, cleaned of badges and images.
dsh-subagent-claude-code-wrapper
English | 中文
Lets DeepSeek Harness (DSH) delegate subagent work to any Claude-compatible CLI binary — not just the SDK-bundled official one.
Forked from DSH's built-in dsh-subagent-claude-code with one added config field: executablePath.
What problem this solves
DSH's built-in subagent-claude-code provider hardcodes the SDK-bundled official Claude Code CLI. But some environments run a different Claude-compatible CLI — an enterprise fork, a self-built binary, a pinned version, or a wrapper script that injects extra flags. This plugin exposes the SDK's existing pathToClaudeCodeExecutable option as a config field, so you don't need to patch DSH source.
DSH doesn't accept external PRs (see its CONTRIBUTING.md); community plugins are the supported way to extend it. This package follows that path: a copy of the built-in provider's source plus one field, shipped as an independent bundle — DSH updates never touch it.
Config
| Field | Default | What it does |
|---|---|---|
providerName | claude-code-wrapper | Name registered on ctx.subagents. Distinct from the built-in claude-code so both can coexist. |
executablePath | (unset → SDK default) | Path to your CLI binary. Fill in where your CLI lives; the plugin spawns it at runtime. |
env | {} | Environment entries passed to the child process, layered over DSH's scrubbed parent environment. |
permissionMode | dontAsk | dontAsk / acceptEdits / auto / plan / bypassPermissions. |
disposeGraceMs | 3000 | Grace period in ms for process-tree termination. |
VS Code extension correspondence
This provider's config aligns with the official Claude Code VS Code extension's launch-contract settings:
| This plugin | VS Code setting | Notes |
|---|---|---|
executablePath | claudeCode.claudeProcessWrapper | Executable path used to launch the Claude process. |
env | claudeCode.environmentVariables | Child environment overlay (we use a map, VS Code uses an array). |
permissionMode | claudeCode.initialPermissionMode | Session permission mode. |
(permissionMode: bypassPermissions) | claudeCode.allowDangerouslySkipPermissions | Derived from permissionMode, not a separate field. |
The built-in provider already covers env and permissionMode. This fork adds the only missing piece: executablePath ↔ claudeProcessWrapper.
Quick start (3 steps)
Step 1 — Install the bundle
# Local directory:
dsh plugin --profile web add /path/to/dsh-subagent-claude-code-wrapper
# npm:
dsh plugin --profile web add @yaways/dsh-subagent-claude-code-wrapper
# GitHub:
dsh plugin --profile web add github:yaways/dsh-subagent-claude-code-wrapper
Verify with dsh --profile web --dump-default-config — look for id: subagent-claude-code-wrapper.
Step 2 — Point it at your CLI
Edit ~/.dsh/profiles/web/cordis.patch.yml and set executablePath to your CLI's actual path:
- id: subagent-claude-code-wrapper
config:
executablePath: /opt/your-tools/bin/your-claude-cli
…
