dsh-plugin-yet-another-subagent: A Configurable Subagent Profile System for DeepSeek Harness
huanlinoto/dsh-plugin-yet-another-subagent
Configurable subagent profile system for DSH plugin: single tool with profile param, Web UI settings and real-time progress.
Manage subagent definitions in DeepSeek Harness through a single subagent tool and profile parameter, with Web UI settings, real-time progress, and a subagent tree view.
dsh plugin --profile web add github:huanlinoto/dsh-plugin-yet-another-subagent- Category
- Skills & Agents
- Platform
- DSH-Plugin
- Author
- huanlinoto
- Distribution
- Plugin
dsh-plugin-yet-another-subagent Key Features
dsh-plugin-yet-another-subagent Repository

dsh-plugin-yet-another-subagent Repo Summary
yet-another-subagent is an Agent core plugin (DSH plugin) for DeepSeek Harness (DSH), maintained by HuanLinOTO and written in JavaScript. It addresses the fragmentation of subagent configuration: instead of registering a separate tool for each subagent, it consolidates subagent definitions into a configurable profile system via a single subagent tool plus a profile parameter. It comes with Web UI settings, real-time progress display (tool calls/tokens/activity), and a subagent tree tab, making subagent creation, switching, and monitoring unified and intuitive.
What core features does the yet-another-subagent DSH plugin offer?
The plugin uses a single bundle with three entry points (host, invariant, client). The host side reuses the official spawn provider, supporting both foreground and background (continuable / one-shot) modes. Profile state is persisted to $DSH_HOME/settings.yaml via the DSH settings seam, and RPC CRUD operations (profiles.list / .add / .update / .remove) are provided over a dedicated /ya-subagent channel. The client side offers a profile editing page, a tool call card (SubagentCard), and a subagent tree view (SubagentTreeView), with click-to-navigate to child sessions.
How do you configure profiles in yet-another-subagent?
Profiles are defined in the profiles field of cordis.patch.yml. Each profile supports fields such as id, label, model.kind (auto inherits parent model or manual specifies), persona.kind (inherit or custom), toolFilter (none/allow/deny), maxDepth (default 3), and backgroundMode (continuable or one-shot). Runtime changes are written to the user layer via scope.replace(), and external YAML edits support hot reload via scope.watch.
How do you install yet-another-subagent?
Installation from npm is recommended. After installation, restart the dsh web process and hard-refresh the browser (Ctrl+Shift+R):
dsh plugin --profile web add github:HuanLinOTO/dsh-plugin-yet-another-subagent
For local development with hot reload, you can use the link: protocol to reference a local path.
What are the development and check commands for yet-another-subagent?
The only runtime npm dependency is zod; the project uses pnpm. Type checking resolves DSH source via ../dsh, and tests use vitest.
pnpm install # install dependencies
pnpm run typecheck # tsc --noEmit
pnpm test # vitest run (55 tests passing)
pnpm run build # outputs lib/index.js, lib/invariant.js, lib/client.js
How does persistence work in yet-another-subagent?
Profile state is persisted to the ya-subagent namespace in $DSH_HOME/settings.yaml via the DSH settings seam. The profiles field in cordis.yml serves as seed data on first launch; runtime changes are written to the user layer, and external edits support hot reload. Headless assemblies without a settings provider fall back to default behavior.