Preface¶
If you’re using Claude Code, Codex, Antigravity, or Grok for orchestration and want to leverage DeepSeek Harness (DSH) tools, sandbox, presets, and session history for running specific tasks, the common practice is to bypass the host interface and start a separate DSH process or write custom bridging scripts. This way, the orchestrator can’t see the real-time progress of subtasks, and you have to maintain the tiering and failure retry logic yourself.
Here we introduce DSH Crew. It attaches DSH agents as native subagents to the host task panel, keeping the orchestrator’s model unchanged while the actual work is done by real DSH agents. When DSH Web is open, workers also appear as first-class sessions in the Web UI.
What Is This¶
DSH Crew is a workflow plugin for DSH, with the npm package name @zseven-w/dsh-crew, maintained by ZSeven-W. The SkillHub directory page shows the current version as 0.1.0-rc.6, and the README states it has been verified on DSH 0.1.1-rc.1. The GitHub repository has about 103 stars and 4 forks.
The core problem it solves is: dispatching tasks from Claude Code / Codex / Antigravity / Grok to DSH agents while preserving the host’s native subagent progress UI, and supplementing visual description and image generation capabilities for the text-only DSH model when needed.
Core Features¶
Native Subagent Progress¶
Workers appear as regular subagents in the host. Dispatch count, current steps, tool calls, and token consumption show up in the host task panel; Claude Code can also view the runtime tier and duration via the claude-hud status bar section, e.g., ⚙dsh 1▶pro 2m14s 21.7k/606 ✓3.
Tier Strategy and Failure Escalation¶
flash targets mechanical tasks, pro targets reasoning tasks, and effort can be set from off to max. tier_policy can converge all dispatches to a specific tier at the tool level; escalate_on_failure automatically retries once with pro after a flash task fails, based on execution results rather than pre-guessing difficulty. Tiers correspond to the DeepSeek V4 Flash and V4 Pro configured in DSH; when DSH changes the model, the plugin side doesn’t need modification.
DSH Sessions in Host¶
After installing the bundle into the DSH profile, each worker becomes a first-class DSH session: appearing in the Web UI, grouped by working directory, and attached to the specified Agent preset by tier. When DSH is not running, dispatches fall back to an independent dsh-jsonrpc-agent runtime, so CI and headless environments can still use it.
Dispatch Guards and Task Dashboard¶
Each dispatch goes through checks before starting the process: worker→worker nesting is limited to origin chain depth 3, loops are rejected; when a workspace already has a running task, a second worker is rejected and returns holder information without silently queuing. The DSH Crew settings panel also serves as a task dashboard, listing running and completed tasks with their tier, effort, progress, and tokens; tasks that disappear mid-way show up as orphan ghosts.
Visual and Image Generation Bridge¶
DSH models are text-only. describe_image prioritizes the DeepSeek vision model deepseek-v4-flash-vision-exp when available, falling back to locally logged-in Claude, Codex, Grok, Antigravity CLIs, or user-configured OpenAI-compatible APIs if that fails. generate_image borrows image generation capabilities from the same CLIs. Images pasted in the session are preserved for display, and the model side receives transcribed text.
One-Click Host Integration Installation¶
The settings page or CLI installer can register MCP, permission allowlists, HUD wiring, and absolute paths for Claude Code, Codex, Antigravity, and Grok; configuration files are automatically backed up before changes.
How It Works¶
First orchestrate, then dispatch work via MCP. The overall flow is as follows:
Claude Code / Codex / Antigravity / Grok (orchestrator, model unchanged)
└─ ds-flash / ds-pro ← native subagent shell (progress appears in host task UI)
└─ MCP: dsh_run_worker(tier, effort, cwd, worker=)
├─ worker="agy"/"grok" → work done by external CLI (explicit opt-in)
├─ hub reachable → session within DSH (visible in Web UI, grouped by cwd)
└─ otherwise → dsh-jsonrpc-agent independent runtime (worker.cordis.yml)
└─ DeepSeek V4 Flash / Pro (DSH SDK, event stream → progress and token stats)
Installation and Enabling¶
Install into DSH Profile¶
Install from npm to the web profile, then open DSH Web:
dsh plugin --profile web add @zseven-w/dsh-crew@latest
dsh web
For local development, you can link directly to the source tree, rebuild, and see changes instantly:
dsh plugin --profile web add link:/path/to/dsh-crew
dsh web
Configure DeepSeek Credentials (standalone only)¶
In hub mode, workers use existing DeepSeek credentials from the DSH instance, requiring no additional configuration. Only when dispatching from the host and no DSH instance is running do you need to prepare keys for the standalone runtime: get an API key from platform.deepseek.com and write it to ~/.config/dsh-crew/.env:
DEEPSEEK_API_KEY=sk-...
Self-Check¶
After installation, you can run the smoke test to verify if the hub or standalone path is available:
node scripts/smoke.mjs
If smoke test passed — configuration OK appears within about ten seconds, the configuration is correct.
Install Host Integration¶
Open DSH Settings → DSH Crew, or run in the repository directory:
node src/install/cli.mjs claude # Claude Code: marketplace + permission allowlist + HUD
node src/install/cli.mjs codex # Codex agent + prompt
node src/install/cli.mjs agy # Antigravity MCP + agent + skill
node src/install/cli.mjs grok # Grok MCP + agent + command
node src/install/cli.mjs all # Install all four hosts at once
After installing for Claude Code, you need to restart the session for changes to take effect.
Typical Usage¶
Claude Code¶
In the conversation, directly say “assign X to ds-flash” or “assign X to ds-pro”. Use session commands to manage defaults and status:
| Command | Function |
|---|---|
/dsh-crew:config |
View or set tier, effort, mode, timeout, policy, escalate, etc. |
/dsh-crew:on · /dsh-crew:off |
Toggle dispatching for this session |
/dsh-crew:status |
View real-time worker status |
/dsh-crew:playbook |
View dispatch best practices |
For long tasks, the orchestrator can use dsh_spawn_worker for asynchronous dispatch and then poll results with dsh_worker_result(wait_seconds) to avoid MCP call timeouts.
Codex¶
In the interactive TUI, select “spawn ds-pro to …” to dispatch; codex exec can also directly call dsh_run_worker. The role file must set default_tools_approval_mode = "approve", otherwise tool calls in exec mode will be automatically cancelled.
MCP Tools Overview¶
| Tool | Description |
|---|---|
dsh_run_worker |
Blocking dispatch, waits for return result |
dsh_spawn_worker |
Asynchronous dispatch, returns job id |
dsh_worker_status |
Query all job progress and cwd locks |
dsh_worker_result |
Get result, can specify wait_seconds |
dsh_worker_cancel |
Cancel specified job |
dsh_worker_config |
View or set defaults for this session |
Progress is also written to ~/.config/dsh-crew/status.d/ for statusline or external monitoring.
Use Cases and Notes¶
Who it’s for: Developers who are already using Claude Code, Codex, Antigravity, or Grok for orchestration and want to hand off specific execution to DSH agents while seeing real-time progress in the host panel; when running DSH Web locally, you can also watch worker sessions in the Web UI.
Permissions and Security: The plugin runs with the current DSH process permissions. Before installation, you should read the GitHub source code and MIT License. Antigravity workers run with full approval; Grok workers run with bypassPermissions, but deny rules and hooks still apply.
Ecosystem Context: DSH adopts an “everything is a plugin” architecture; SkillHub is a community directory, with no official affiliation with DeepSeek /幻方 (High-Flyer).
Known Limitations: DeepSeek models themselves do not support image input and image generation; these capabilities are implemented via borrowed CLIs or custom providers; image generation output is flat bitmaps. Codex roles must configure tool approval mode; otherwise, dispatching cannot work properly.
Conclusion¶
With the steps above, you can assign tasks to DSH agents in your familiar orchestration environment while preserving native progress UI, tier strategy, dispatch guards, and multimodal bridging. For more details, see the project README and settings page.
- SkillHub directory page: https://www.skillhub.cn/plugins/ZSeven-W/dsh-crew
- GitHub repository: https://github.com/ZSeven-W/dsh-crew