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.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-llm-fallbacks

Llm Fallbacks

Automatic provider/model fallback chains for DeepSeek Harness agents when LLM requests keep failing (retry exhausted, auth, quota, rate limit)

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-llm-fallbacks@0.6.13
READMECompatibilityVersions
Time slots

Compatibility and provenance

Llm Fallbacks is published as dsh-llm-fallbacks and currently resolves to version 0.6.13. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
11/4/2026

Versions

0.6.13stable
10/28/2026
0.6.12stable
10/25/2026
0.6.11stable
10/24/2026
Show 38 more versionsCollapse versions
0.6.10stable
10/23/2026
0.6.9stable
10/22/2026
0.6.8stable
10/20/2026
0.6.7stable
10/18/2026
0.6.6stable
10/17/2026
0.6.5stable
9/29/2026
0.6.4stable
9/28/2026
0.6.3stable
9/28/2026
0.6.2stable
9/27/2026
0.6.1stable
9/24/2026
0.6.0stable
9/24/2026
0.5.2stable
9/11/2026
0.5.1stable
9/11/2026
0.5.0stable
9/10/2026
0.4.4stable
9/10/2026

Related plugins

Loading related plugins…

Latest
0.6.13
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
910 kB
Files
58
Surface
web
License
Not declared
Source
npm
GitHub
★ 25
Weekly downloads
1,901
Security scan
✓ v0.6.13 scan passed
Last push
10/30/2026
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
0.4.3stable
9/10/2026
0.4.2stable
9/8/2026
0.4.1stable
9/3/2026
0.4.0stable
9/3/2026
0.4.0-alpha.1prerelease
8/30/2026
0.3.5stable
8/26/2026
0.3.4stable
8/23/2026
0.3.3stable
8/21/2026
0.3.2stable
8/20/2026
0.3.1stable
8/20/2026
0.3.0stable
8/18/2026
0.2.2stable
8/17/2026
0.2.1stable
8/16/2026
0.2.0stable
8/16/2026
0.1.7stable
8/16/2026
0.1.6stable
8/15/2026
0.1.5stable
8/15/2026
0.1.4stable
8/15/2026
0.1.3stable
8/15/2026
0.1.2stable
8/15/2026
0.1.0-alpha.4prerelease
8/14/2026
0.1.0-alpha.3prerelease
8/14/2026
0.1.0-alpha.2prerelease
8/14/2026

README

dsh-llm-fallbacks

English | Chinese

Automatic provider/model fallback chains for dsh (DeepSeek Harness): when an agent's LLM requests keep failing — retries exhausted, auth errors, quota exceeded, rate limiting (429) — the plugin switches provider/model along the fallback chain for the current role, and the current step/turn continues on the target model: tasks are not interrupted by model problems.

Works in both dsh front ends: the web profile (Settings → Plugins → Fallbacks card) and the dsh-tui terminal profile (/fallbacks session diagnostics, /fallbacks config readback, and the /settings fallbacks section for editing).

Three core capabilities

Automatic model failover

Any agent — root or subagent — that keeps failing on a listed failure code walks its chain to the next available provider/model and keeps the step alive. No manual model switching, and nothing happens until you configure content.

  • Triggers: triggerCodes (default AUTH / QUOTA / RATE_LIMIT) — any dsh failure code is accepted, including CONTEXT_WINDOW_EXCEEDED, which fails over to a larger-context candidate. Retryable failures (5xx, TRANSPORT, TIMEOUT, …) stay with llm-retry first.
  • Recovery: a failed / switched-away model is held out of selection for cooldownMs, and revertPolicy: cooldown-expiry returns to the primary model on expiry. The opt-in recovery: half-open mode (YAML-only) makes that return evidence-driven instead of timer-based.
  • Safety valves: maxSwitchesPerStep caps switches per step and alwaysModeRetryCap caps always-mode retries — chain loops cannot amplify latency.
  • Visibility: every switch is recorded in an info-level log line (from/to/role/reason) — no silent model switching.

→ Automatic model failover · Context-window-aware fallback

Peak/valley time slots

Time slots rotate the effective root chain by wall-clock windows: each row carries its own fallback chain, and the first row whose window contains the current moment replaces the all-day chain for the next root request — the all-day chain stays the last resort when no row matches. Rotation is a routing seed, not a failure decision: it consumes no cooldown and leaves the failure walk (fallback switch) untouched.

Time slots

Four frozen UTC+8 presets (windows are code constants; preset rows lock tz to Asia/Shanghai):

PresetWindow
liang-peakMonday–Friday 09:00–12:00 and 14:00–18:00
liang-valleyevery other UTC+8 time (complement of Liang Peak)
glm-peakMonday–Friday 14:00–18:00
glm-valleyevery other time (complement of GLM Peak)

GLM Peak and GLM Valley are offered in the card picker only when zai-coding-cn is configured. Custom rows take start / end (HH:mm, may wrap midnight) and an optional days list.

→ Time slots

Role-based subagents

A subagent's role is declared in its dispatch prompt — the Assignment header **Execute as**: <id> — and it is resolved against the role ids declared in roles.list. Only that declared header delivers the child's identity: the role's persona is installed on the child as a system-prompt section, the child's own session gets exactly one [role: <id>] notice row, and its session header shows a role badge.

Role routing is resolved separately, in four ordered stages, first hit winning — explicit agentPreset → dispatch-declared **Execute as**: <id> header → rules → LLM auto-match. If the child's dispatch prompt declares **Execute as**: <id>, that role's persona, [role: <id>] notice and badge are delivered regardless of which routing stage wins — an earlier explicit agentPreset can route the child as another role while the identity carriers stay the declared header's. A child with no declared dispatch header gets no persona, no notice row and no role half of the badge (the model half still renders when the child has a recorded route), even when rules or auto-match resolve a role for routing. Making the resolved role's chain head the child's model is plugin-originated and conditional: with the host subagent-model-selection policy enabled, an explicit authorized route is preserved (inject skipped) and an injected head must be inside the effective allowlist — an empty intersection injects nothing (host policy).

This covers an ordinary subagent dispatch and an Agent Team teammate (spawn_teammate) alike: both are children dispatched with the same header, which the model writes — the same dispatch seam, no mechanism-specific configuration.

→ Role-based subagents

Quick start

Install

Desktop / Web plugin page — in DeepSeek Harness (the Desktop app, or a dsh web session) open the Plugins page in the sidebar, click Add plugin, enter the package name dsh-llm-fallbacks, and click Install; then follow the host's restart prompt. The wizard accepts a package name (= npm package name), a GitHub repo, or a local directory — a registry install needs only the package name. The GUI writes into the web profile, the same profile the --profile web flag below targets.

CLI — for scripted setups, or the terminal front end:

dsh plugin --profile web add dsh-llm-fallbacks      # web profile (Settings → Fallbacks card)
dsh plugin --profile dsh-tui add dsh-llm-fallbacks  # dsh-tui terminal profile

dsh-tui has no plugin page of its own, so it stays CLI-only. Pin a version with @<version>. A registry install fetches the built package (dist/), so nothing builds on the target machine. Registry / git / local-directory variants, uninstall, and --dump-config verification → docs/install.md. The plugin ships localized metadata (title/description for the Plugins-page detail view, English + Simplified Chinese) and an icon — both declared in the package (locale/*.json + icon.svg) and picked up by the host automatically.

Configure

The plugin's settings live in a shared fallbacks: namespace, editable from three surfaces:

SurfaceWhat it isNotes
Web settings cardSettings → Plugins → FallbacksFull GUI editor for the fallbacks: namespace; writes the shared settings document
$DSH_HOME/settings.yamlfallbacks: section in the dsh settings documentThe shared source of truth — the same file the web card writes; readable and editable everywhere, including scripted setups
TUI /settingsfallbacks section in the dsh-tui settings screendsh-tui ≥ v0.8.5; native fields for simple keys, JSON text fields for complex structures

(/fallbacks and /fallbacks config are diagnostics — read-only views, not edit surfaces.) A minimal section:

fallbacks:
  rootChain:               # all-day chain: leading entries = fallback walk, last = Default model (official)
    - anthropic/claude-3-5-sonnet
    - deepseek-official/deepseek-flash
  timeSlots:               # optional: rotate the effective root chain by wall-clock windows
    - kind: preset
      preset: liang-peak
      chain:
        - anthropic/claude-3-5-sonnet
  roles:                   # optional: declare role entities, then reference them from rules
    list:
      - id: reviewer
        persona: Code-review subagents
        chain:
          - openai/gpt-4o-mini
        fallback: inherit-root
    rules:                 # subagent-only: rules never match root requests
      - role: reviewer

Three rules of thumb:

  • There is no feature switch: the plugin intervenes exactly when content is configured — a non-empty rootChain, at least one timeSlots row, or one declared role. An empty section is a complete no-op, and the Plugins-page row toggle is the master switch.
  • The all-day rootChain tail must be exactly one official model — deepseek-official/deepseek-flash or deepseek-official/deepseek-v4-pro (XOR); the leading entries are the fallback walk, walked first.
  • Slots and roles are optional: the first time-slot row whose window matches replaces the all-day chain for the next root request; rules map subagents to declared roles and never match root requests.

Full reference (keys, entry syntax, selector rules, migration) → docs/configuration.md.

Upgrade note (breaking): the config-level enabled switch is removed — a stored section still carrying enabled: true/false loads cleanly (the key is ignored and stripped on the next save), but the switch no longer gates anything. If you relied on enabled: false to keep the plugin inert, empty the section (or disable the plugin row on the Plugins page) instead.

Verify

Save the config and restart the session, then type /fallbacks — the read-only in-session diagnostics (origin, resolved role, chain, recent fallback switches, cooldown status). In a dsh-tui profile, /fallbacks config reads back the composed configuration.

Feature highlights

  • Automatic failover for root and subagents — any agent walks its chain on a listed failure code and the step continues. → details
  • Context-window-aware fallback — CONTEXT_WINDOW_EXCEEDED fails over to a larger-context candidate; the switch is request-scoped (no cooldown). → details
  • Peak/valley time slots — four frozen UTC+8 presets or custom windows rotate the effective root chain. → details
  • Role-based subagents — a dispatch-declared role brings persona, notice row and badge to the child; its chain head is injected subject to host policy. → details
  • FallbacksChain in the picker — select FallbacksChain / Auto to make the chain the root primary; any real model stays fallback-only. → details
  • Host subagent model policy — the dsh 0.1.2 allowlist is a hard constraint on every plugin-originated subagent route. → details
  • Five bundled preset roles — reviewer / scout / security-reviewer / sonic / task, declared on apply. → details
  • dsh-tui surfaces — /fallbacks, /fallbacks config, and a /settings section with web-card parity. → details

Mount-only

The plugin installs as a pure mount: bundle insert + client inject + its own gateway channel (/api/fallbacks/get|set|reset) — no dsh patches, no postinstall step, and dsh upgrades never require re-patching. Stale leftover patches from an older patched install are harmless.

Documentation

DocContent
docs/install.mddesktop/web plugin page / profile install (web + dsh-tui) / registry / git / local variants / uninstall / --dump-config verification
docs/configuration.mdfull fallbacks namespace reference, selector syntax, example YAML, plugin-config card usage, TUI readback, behavior notes, preset roles
docs/features.mdcapability reference: failover, context-window fallback, time slots, role-based subagents, picker, host policy, preset roles, agent presets, dsh-tui
docs/repair.mdsession-log repair: refusal classes, --apply publishing, flags, exit codes, lossy --drop-legacy-events
docs/consumer-api.mddeveloper consumption contract: library API + named llm-fallbacks service + role seeds, export inventory, lifecycle, typing
docs/release.mdrelease process: Trusted Publishing setup, Release prep SOP, fragment format, rollback
docs/verification.mdverification records (test matrix, bundle layer order, runtime contracts, QA gate script)
CHANGELOG.mdreleased changes, assembled from .changes/ fragments

License

Released under the MIT License — see LICENSE. The LICENSE file is authoritative for copyright and license terms.

Related plugins

More verified plugins in models-usage.

Experimental Cot Translation Bundle@deepseek-ai/dsh-experimental-cot-translation-bundleExperimental machine translation of expanded reasoningWhale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editinOur Free Model@ebony-vinyl/dsh-our-free-modelOur Free Model — Install this plugin in dsh to use cutting-edge models including DeepSeek V4.1 Flash and Kimi K3, with no login, registration, or API Key required. The desktop version also offers an EAC co-payment channel; starting with 2.0, it supports ten account channels: LobsterAI, Qoder, TRAE, Usage@linxin666/dsh-usageUsage statistics plugin for the dsh web GUI: per-provider balance and coding-plan quota detection plus a live token usage ledger, with a compact price glance card above the sidebar's Settings row