DSH Hub

yaways/dsh-subagent-claude-code-wrapper

dsh-subagent-claude-code-wrapper

BundleWorkflow0 GitHub stars· updated 2026-08-22

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-wrapper

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-subagent-claude-code-wrapper DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-subagent-claude-code-wrapper.svg)](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

FieldDefaultWhat it does
providerNameclaude-code-wrapperName 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.
permissionModedontAskdontAsk / acceptEdits / auto / plan / bypassPermissions.
disposeGraceMs3000Grace 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 pluginVS Code settingNotes
executablePathclaudeCode.claudeProcessWrapperExecutable path used to launch the Claude process.
envclaudeCode.environmentVariablesChild environment overlay (we use a map, VS Code uses an array).
permissionModeclaudeCode.initialPermissionModeSession permission mode.
(permissionMode: bypassPermissions)claudeCode.allowDangerouslySkipPermissionsDerived from permissionMode, not a separate field.

The built-in provider already covers env and permissionMode. This fork adds the only missing piece: executablePathclaudeProcessWrapper.


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

Related plugins