dshbase

Plugin directory / Knowledge / dsh-subagent-model-picker

dsh-subagent-model-picker

Verified · install-tested on dsh ringoage

✓ Actively maintained Builds on 4 official DSH packages

View on GitHub ↗ ← Back to plugin directory

0Stars
0Forks
0Open issues
—Language
2026-08-16Last push
Cross-platformPlatform

What it does

The visual, manual subagent-model picker for DeepSeek Harness — predictable per-session routing with global coverage of every in-process subagent path, complementary to auto-routing plugins.

✅
Our take
Works — verified, early-stage project

The visual, manual subagent-model picker for DeepSeek Harness — predictable per-session routing with global coverage of every in-process subagent path, complementary to auto-routing plugins. It installs cleanly and boots without issues in our testing. It's early-stage but functional.

“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

README

dsh-subagent-model-picker

The visual, manual subagent-model selector for DeepSeek Harness.

Pick a cheaper / faster model — and its reasoning effort — for every in-process
subagent, right beside the main model seat, per session, with zero guessing.

Why this exists

"Route subagents to a cheaper model" has been done many ways in the last few
days, but they all decide for you:

Approach How it picks Who decides Predictable?
Tool-based a tool the model itself calls the model ❌ run-dependent
Auto-routing rules / plan-mode classification the plugin's policy ⚠️ only as good as its rules
Command-based a /command you type you, imperatively ✅ but no visible state
Manual GUI (this) a seat beside the model seat you, visually ✅ deterministic + always visible

dsh-subagent-model-picker is the only visual, manual selector in this
category: a GUI control next to the main model seat, so the choice is explicit,
visible at a glance, and applies deterministically to every subagent path.

What it gives you

  • Manual — you choose; not a policy, not the model itself.
  • Visual — a dropdown beside the main model seat (hover pill + click-outside-to-close + Escape).
  • Predictable — the selection is per-session state; every child gets exactly what you picked.
  • Global coverage — one host-side agent/request listener covers subagent, subagent_fork, and workflow fan-out children at any depth.
  • Reasoning effort — models that expose effort levels (e.g. off / high / max) get a matching "Thinking effort" menu.
  • Inherit by default — subagents stay on the main model until you opt in.
  • Per-session + durable — the choice follows the session and survives restart.
  • Localised — zh / en UI copy.

Complementary, not a replacement

Auto-routing plugins (tier/smart/adaptive routers, plan-mode classification)
and tool/command approaches answer "pick for me". This plugin answers
"let me pick". They compose: keep an auto-router as the default policy and use
the picker to override a specific session manually — or the other way around.

How it works

Two halves cooperate without touching the apiProxy settings whitelist:

  1. Host (lib/index.js) registers one agent/request waterfall listener.
    dsh-scope admits events up the scope chain, so this host-root listener
    sees every agent's requests; a child is recognised by
    agent.options.subagentDepth >= 1. It walks the parent chain to the root
    session and overrides { provider, model, reasoningEffort? } only for
    subagents.

  2. Persistence + transport go through a Typert Remote service
    (subagent-model-picker, wire namespace subagent-model-picker) exposing
    get / set / clear. The client half mounts the Remote contribution
    (ctx.remote.$mount) and calls remote.subagent-model-picker.*; the service
    persists the sessionId -> { provider, model, reasoningEffort? } map
    host-side, so the apiProxy exposedNamespaces() whitelist is never consulted.

Install

One-liner (GitHub, market-compatible)

dsh plugin --profile web add github:ringoage/dsh-subagent-model-picker

This is the same github: install path the DSH plugin market uses, so it can be
installed straight from this repository.

Manual (edit the profile)

In your web profile (.dsh/profiles/web/package.json), add the package as a
dependency and list it in dsh.profile.bundles:

{
  "dependencies": {
    "dsh-subagent-model-picker": "^1.0.0"
  },
  "dsh": {
    "profile": {
      "bundles": ["dsh-subagent-model-picker"]
    }
  }
}

Then restart the harness. For a local checkout use a link: dependency pointing
at this directory.

Usage

To the left of the main model selector you will see Subagent Model
(or 子代理模型). Pick a model — and, if offered, a Thinking effort — and
every subagent spawned from that session uses it. Choose Inherit main model
(default)
to restore default routing.

Limitations

  • Only in-process subagents are routed: subagent, subagent_fork, and
    workflow fan-out children driven by DSH itself. External CLI agents
    (e.g. claude-code, codex) manage their own model selection and are not
    affected.
  • The selector is a web client feature; host routing works regardless of
    whether the web GUI is open, but the selection itself is edited from the web
    composer.

Development

  • lib/index.js — host half (Remote service + agent/request routing).
  • lib/client.js — client half (slot UI + Remote contribution + locale).
  • cordis.patch.yml — the dsh.bundle.patch insert that mounts the plugin row.

The Remote service runs in SRC mode: methods are marked with the
@Remote(name) contract applied in plain JS (no generated typert.host.js),
and the client contribution ships hand-written strict descriptors.

License

MIT

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install dsh-subagent-model-picker for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

Web profile:

dsh plugin --profile web add github:ringoage/dsh-subagent-model-picker

Headless (CLI) profile:

dsh plugin --profile headless add github:ringoage/dsh-subagent-model-picker

Test report

Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.

Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in Knowledge

Browse all 7819 plugins →