DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Subagent Claude Code — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

@deepseek-ai/dsh-subagent-claude-code

Subagent Claude Code

One-shot Claude Code subagent provider over the official Agent SDK

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add @deepseek-ai/dsh-subagent-claude-code@0.1.6-alpha.2
READMECompatibilityVersions

Compatibility and provenance

Subagent Claude Code is published as @deepseek-ai/dsh-subagent-claude-code and currently resolves to version 0.1.6-alpha.2. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
npm
Registry updated
9/20/2026

Versions

0.1.6-alpha.2prerelease
9/17/2026
Show 14 more versionsCollapse versions
0.1.6-alpha.1prerelease
9/15/2026
0.1.5-rc.2prerelease
9/10/2026
0.1.5-rc.1prerelease
9/10/2026
0.1.5-alpha.2prerelease
9/9/2026
0.1.5-alpha.1prerelease
9/8/2026
0.1.3-alpha.2prerelease
9/7/2026
0.1.2-rc.1prerelease
9/3/2026
0.1.2-alpha.5prerelease
9/2/2026
0.1.2-alpha.4prerelease
9/1/2026
0.1.2-alpha.3prerelease
8/31/2026
0.1.2-alpha.2prerelease
8/30/2026
0.1.1-rc.2prerelease
8/21/2026
0.1.1-rc.1prerelease
8/21/2026
0.1.0-rc.8prerelease
8/19/2026

Related plugins

Loading related plugins…

Latest
0.1.6-alpha.2
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
61.4 kB
Files
10
Surface
any
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
1,817
Security scan
✓ v0.1.6-alpha.2 scan passed
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in agents-orchestration.

Headless@deepseek-ai/dsh-headlessThe dsh one-shot bundle: a direct core Agent/Session runner over dsh-base with no Host, HTTP, or browser layerExperimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profileExperimental Web profile layer for Agent Teams Remote and UI pluginsSubagent Codex@deepseek-ai/dsh-subagent-codexOne-shot Codex subagent provider over the official app-server protocolHeadless@monotykamary/dsh-headlessThe dsh one-shot bundle: a direct core Agent/Session runner over dsh-base with no Host, HTTP, or browser layer

README


description: "The one-shot Claude Code subagent provider for users and maintainers choosing a product backend, installing a Profile bundle, or configuring an unattended Claude Code delegation." kind: "package-bundle"

@deepseek-ai/dsh-subagent-claude-code

English | 中文

Summary

Install this Profile Bundle when a delegated task should run as a fresh, unattended Claude Code session in the parent workspace. Each run accepts one self-contained text task and returns the final answer or a safe failure diagnostic; reasoning, tool traffic, stderr, usage, and workspace diffs stay out of the parent Session. Native Claude settings and authentication remain authoritative, while Profile configuration selects the model, environment, and permissionMode. The platform-pinned runtime starts on demand and never falls back to the host claude executable. Choose it when isolation and genuine Claude Code behavior matter more than continuation or prompts.

Table of Contents

  • Use this package
  • Understand the implementation
  • Further Exploration
  • Model Experience
  • Known Limitations and Deferred Work
  • Dev Note

Use this package

Mount this provider when a delegation should run as a real Claude Code session in the parent's workspace. The common path is explicit: install the Bundle into a Profile, optionally configure the provider row, and expose it to the model through a delegation tool row.

Installing the Bundle

Install the package into the target Profile, then restart that Profile. The installation brings the pinned Agent SDK and one compatible platform CLI payload into the Profile; the declared patch layer registers only the dormant provider and starts no Claude process.

dsh plugin --profile <name> add @deepseek-ai/dsh-subagent-claude-code
dsh plugin --profile <name> remove @deepseek-ai/dsh-subagent-claude-code
dsh --profile <name>

Removing the package withdraws the provider and its private runtime closure on the next Profile start. Installation controls Host availability, not model permission: the model can only reach the provider through a delegation tool row you compose.

Configuration

FieldDefaultMeaning
providerNameclaude-codeNon-empty registry name on ctx.subagents; each mounted instance needs a unique value
modelnative Claude settingsOptional non-empty model name fixed for every run from this provider instance; omission sends no SDK override
env{}Explicit SDK/CLI environment layered over the credential-scrubbed parent environment
permissionModedontAskNative non-interactive permission policy fixed for every run from this provider instance
disposeGraceMs3000Grace between the shared managed-range owner's termination tiers
permissionMode valueNative behavior
dontAskDeny operations that are not already authorized instead of prompting
acceptEditsAccept file edits; any remaining permission prompt is denied by the unattended callback
autoLet Claude Code's native classifier allow or deny permission requests
planRun in native planning mode, deny execution approval, and return the completed plan as the final answer
bypassPermissionsExplicitly set the SDK's dangerous confirmation and bypass permission checks

The generated configuration catalog is the exhaustive source for every accepted field and its JSDoc. A configured model passes unchanged to every query from that provider instance; omission leaves native model selection in force. Credential-shaped ambient variables are removed before the explicit env overlay, so an API key intended for the child must be supplied there. The provider omits the SDK settingSources option, so Claude Code reads the host's normal user, project, and local settings relative to the parent Session cwd. It does not copy or filter those files, create or modify login state, inspect PATH, or fall back to a host claude executable.

Exposing the tool

Each delegation tool row names one provider and needs its own toolName, so the model sees static tools rather than a dynamic provider selector. Full Agent Presets carry a matching default tool row with disabled: true; copy a preset and remove that field to expose subagent_claude_code only to agents composed from the copy.

- id: jobs
  name: '@deepseek-ai/dsh-jobs-local'
- id: tool-jobs
  name: '@deepseek-ai/dsh-tool-jobs'
- id: tool-subagent-claude
  name: '@deepseek-ai/dsh-tool-subagent'
  config:
    provider: claude-code
    toolName: subagent_claude_code
    backgroundMode: one-shot
    maxDepth: provider-managed

The one-shot policy keeps omitted or false run_in_background calls in the foreground, while explicit true returns a parent-owned job id for job_output or job_kill; the base host and full presets already provide the generic Job registry and controls.

What you get

A foreground call gives the model the strict final Claude Code answer, or an error with the stop reason and optional safe diagnostic for a failed run. A background call first returns a job id; the generic job controls later deliver a completion notice and expose the same final answer or failed status through job_output. Claude Code reasoning, tool activity, intermediate messages, stderr, and workspace diffs never enter the parent session.

Failure and recovery

An install that omits optional dependencies, uses an unsupported platform, or loses the selected payload leaves the provider dormant and fails the first delegation at the SDK startup boundary with a safe query-start / unknown failure fact; there is no host-CLI fallback. The original product error stays on the internal cause chain and in the provider's Host log. A cancelled run settles as aborted.


Understand the implementation

Implementation internals — click to expand

This section explains how the provider drives a real Claude Code CLI and where the observable behavior comes from; the full contract lives in Use this package.

Design concept

  • One fresh query per run. Every run has an independent SDK query, cancellation controller, CLI process, and non-persisted product session; there is no continuation, resume, or pooling.
  • Native settings are authoritative. The provider deliberately omits the SDK settingSources option, so Claude Code reads the host's normal user, project, and local settings; an optional model and the required permissionMode are the only query-level overrides.
  • Unattended by design. AskUserQuestion is disabled and permission prompts are denied except in bypass mode, so the query never waits for a user interface.

Source map

FileRole
src/index.tsPlugin entry: config schema, provider registration
src/run.tsThe SDK query lifecycle, result acceptance, and permission handling
src/process.tsManaged-range termination escalation on disposal
cordis.patch.ymlThe Profile patch layer that registers the dormant provider

Run flow

A start accepts only a non-empty sequence of text blocks and derives the child cwd from the parent session. It creates a private AbortController, calls the official SDK query() with the exact concatenated task, and publishes the run only after the SDK's custom-spawn hook has supplied a live CLI handle owned by the subprocess seam. The provider iterates the complete message stream and accepts only a result message with subtype: "success", , and a nonblank , followed by normal iterator completion. Every other outcome maps to a fixed-category diagnostic naming the lifecycle stage and observed process outcome — the category set lives in . Local cancellation wins the result race and maps to without a failure diagnostic.


Further Exploration

Read these pages when the package-level contract is not enough. They move from this provider to the seam it plugs into and the sibling product provider.

  • Subagent subsystem — the service contract, provider contract, and terminal result semantics.
  • dsh-subagent seam — the registry and start API this provider registers on.
  • Codex subagent provider — the sibling product backend over the official app-server protocol.
  • Claude Code and Codex backends — the design record for the product providers.
  • Generated configuration catalog — every accepted config field and its source declaration.

Model Experience

Child request

What the model sees

The Claude Code child receives the standalone text task as one fresh SDK query. Its workspace is the parent Session cwd; the selected provider instance fixes the query's configured model, environment, and non-interactive permission mode, while an omitted model and every other product setting come from native Claude configuration. The executable version comes from the Bundle's pinned SDK platform payload.

Token effect

The child pays for an independent Claude Code context and query. Child tokens do not enter the parent's context.

KV Cache effect

Independent of the parent request cache. Reuse depends only on Claude Code's own model, instructions, tools, native settings, and fresh query.

Parent scheduling and results, indirectly

What the model sees

Through dsh-tool-subagent, a foreground call gives the parent the strict final Claude Code answer or an error containing the stop reason and optional safe diagnostic for a non-completed result. That diagnostic can distinguish a coarse action category, lifecycle stage, and observed process outcome without copying raw product text or version-specific subtype names. A background call first returns a Job id; the generic job controls later deliver a completion notice, expose the same final answer or failed status detail through job_output, and let job_kill request cancellation. Claude Code reasoning, tool activity, intermediate messages, stderr, workspace diffs, usage, product ids, tool inputs, and raw protocol payloads are not copied into the parent Session.

Token effect

Foreground input grows by the retained final answer or error. Background input also includes the start acknowledgement, completion notice, and any job_output, job_kill, or later status results; child tokens still do not enter the parent context. This provider adds no parent tool schema by itself.

KV Cache effect

Append-only: foreground adds one result after the reusable parent prefix, while background appends the Job acknowledgement, notice, and later control or collection results. Background scheduling can add a notice-driven turn, but none of these messages rewrites the earlier prefix.

Known Limitations and Deferred Work

These limits define when this provider is a poor fit or needs special operational care. They are current package constraints, not a general Claude Code comparison or a task backlog.

  • One fresh query and process per run — there is no continuation, resume, pooling, progress stream, or product-session persistence.
  • Static instance selection — Profile rows fix provider names, optional models, and tool bindings; calls cannot choose or change either a provider or model dynamically, and every exposed tool needs a unique toolName.
  • Host settings are intentionally authoritative — when model is omitted, project and user settings choose it; native settings always retain the remaining tools and behavior, and the provider does not provide a filtered or hermetic production mode.
  • Authentication and account state remain native — the Bundle supplies the CLI but does not create an account, log in, or rewrite Claude settings; configuration and authentication failures surface with their lifecycle stage and the safe unknown fallback rather than a separate public classification.
  • The SDK platform payload is required at delegation time — installs that omit optional dependencies, unsupported platforms, and missing or damaged payloads fail at the first query; there is no host-CLI fallback.
  • No human interaction path — AskUserQuestion is disabled, permission prompts are denied, MCP elicitation is declined, and blocking dialogs fail closed instead of suspending.
  • Assistant payload is final text only — reasoning, intermediate messages, tool traffic, usage, stderr, and workspace diffs remain product-local.
  • No optional shared capabilities — agentOptions, output schemas, child personas, tool filtering, and harness depth enforcement are rejected by the shared service for this provider.
  • No wall-clock timeout or side-effect rollback — the caller cancels long work, and files or external systems changed before cancellation are not restored.

Dev Note

Working context for maintainers — click to expand

This Dev Note is working context for maintainers: open questions and undecided directions. It is explicitly non-authoritative — shipped behavior and limits live in the sections above and in the package code.

  • Payload size disclosure — the current darwin-arm64 platform payload packs to about 92 MB and unpacks to about 325 MB; these are disclosure numbers, not installation thresholds.
  • Version-pinned protocol — the runtime dependency is pinned to Agent SDK 0.3.263; upgrading pins a new SDK version and requires re-running the keyless real-product and loader-composition evidence.

Runtime invariant: No companion is published. Lifecycle pairing belongs to the shared subagent service, and managed-range ownership belongs to the subprocess service.

is_error: false
result
error
src/run.ts
aborted