aaravarr
dsh-subagent-max
DeepSeek Harness (DSH) plugin — a subagent_with_model tool plus a live multi-panel subagent viewer.
- Stars
- 2
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
dsh-subagent-max
English | 中文
Multi-panel live subagent viewer for DeepSeek Harness (DSH), plus a
subagent_with_modeltool for per-call model/provider override.
Screenshots
Subagents tab — a card grid grouped into active / inactive and sorted by last activity.
Floating viewer panel — a draggable panel streaming a subagent's live output: task, reasoning, tool calls, and text.
A two-face DSH plugin:
- Host face (
lib/index.js) — a Cordis plugin that registers thesubagent_with_modeltool, a thin wrapper overctx.subagentsthat forwardsmodel/providerinto the child'sagentOptions. - Client face (
lib/client.js) — a Web UI that renders every subagent as a draggable, resizable floating panel with live token-by-token output, plus a Subagents tab with a card grid.
Features
- Per-call model / provider override — delegate to a subagent and pick its model explicitly.
- Multi-panel live viewer — open several subagent panels at once; each streams output in real time.
- Rich block rendering — prompt block, reasoning (think) blocks, tool-call cards with input/output, streaming shimmer, markdown.
- Subagents tab — card grid grouped into active / inactive and sorted by last activity; shows model, tokens, steps, context % and relative update time.
- Drag to pop out — drag a card onto the canvas to open its panel exactly where you drop it (with a ghost preview).
- Notifications — side-top toasts when a subagent starts or receives a message.
- i18n — zh / en, switchable from DSH settings.
Install
dsh plugin --profile web add @aaravarr/dsh-subagent-max
or, manually, place the package under <profile>/node_modules/@aaravarr/dsh-subagent-max/ and add the entry to cordis.patch.yml (see Config).
Config
- insert:
- id: dsh-subagent-max
name: '@aaravarr/dsh-subagent-max'
config:
subagentProvider: spawn # spawn | fork | acp
toolName: subagent_with_model
backgroundMode: continuable # one-shot | continuable
maxDepth: 3
| Field | Type | Default | Description |
|---|---|---|---|
subagentProvider | string | spawn | Subagent transport provider. |
toolName | string | subagent_with_model | Model-facing tool name; must be unique among loaded tools. |
backgroundMode | string | one-shot | continuable returns a durable subagent id; one-shot runs foreground. |
maxDepth | number | 3 | Absolute delegation-depth cap for children (0 forbids further delegation). |
Usage
Ask the model to delegate with an explicit model:
Start a subagent with
deepseek-v4-flashto review this repo's test coverage.
Tool parameters:
| Arg | Type | Required | Notes |
|---|---|---|---|
model | string | yes | Child model id (e.g. deepseek-v4-pro, deepseek-v4-flash, k3-256k). |
provider | string | no | LLM provider route; omitted = inherit the parent's provider. |
description | string | yes | Short (3-5 word) task label. |
prompt | string | yes | Complete, self-contained task. |
run_in_background | bool | no | Background routing; default follows backgroundMode. |
Known Limitations
- Model display is derived from the session's
request/header; it can be absent for some children. - Last-activity time is tracked client-side and cached in
localStorage; the first open after a fresh load may fall back to the session'supdatedAt. - Client UI targets the web platform only.
Development
pnpm install
node --check lib/index.js lib/client.js