Jesse-njx/dsh-polyglot

Points DeepSeek Harness at any OpenAI-compatible endpoint, with curated presets for free and cheap DeepSeek providers and automatic fallback when a free tier rate-limits you. One generic adapter is parameterised by {baseUrl, apiKey, model, headers?, quirks?}, handling streaming, tool calls and usage extraction, with per-provider deviations expressed as small declarative quirks flags rather than per-provider code. A router with fallback marks a failing provider cooling-down on 429 / quota-exceeded / 5xx (or a missing key) with exponential backoff honouring Retry-After, then retries the next provider in the chain. Provider presets live as data in presets/*.json with verifiedAt and free-tier notes, and every attempt lands in the append-only session log as polyglot/served, which /polyglot usage tallies per provider with token counts and estimated cost. Day-to-day commands include /model (show chains and the active one), /model <chain> (switch mid-session, logged as polyglot/chain) and /polyglot (status: active chain, entries, provider cooldowns).

Other ★ 3 updated 2026-08-28 — untested
View on GitHub ↗

Install

dsh plugin --profile web add @dsh-polyglot/bundle

README Quick start quoted verbatim. Caveat disclosed: a registry check on 2026-09-13 returns 404 for @dsh-polyglot/bundle, so treat the command as README-verbatim but unpublished — the README does not offer an alternative GitHub install form for the bundle, so verify the publish status in the repository before relying on it. The bundle's patch registers the polyglot plugin with the recommended default chain "nous-portal → opencode-zen → deepseek-official (5M grant) → kilo". Keys are configured through the credentials seam (the web Models page writes them) or by exporting the env names each preset declares: NOUS_PORTAL_TOKEN, OPENCODE_API_KEY, DEEPSEEK_API_KEY, KILO_API_KEY. A provider without a configured key is skipped automatically.

Compatibility

Positioned as "what claude-code-router is to Claude Code, dsh-polyglot is to DSH" — but because DSH's ctx.llm is a sanctioned extension seam there is no request interception: the generic adapter and the router are both real LlmAdapter registrations. A DSH profile is an ordered stack of plugin-bundle patch layers, which is what the install command adds to.

Details

Recent updates

The README documents the preset data model, the verifiedAt freshness field and the command surface rather than a versioned changelog; verify the bundle's publish status and the presets' verification dates before relying on a provider.

FAQ

How do I install it?
The README's quick start is dsh plugin --profile web add @dsh-polyglot/bundle; the npm name did not resolve on 2026-09-13, so verify publish status before relying on it.
What happens when a free tier rate-limits me?
The router marks the failing provider cooling-down with exponential backoff (honouring Retry-After) and retries the next provider in the chain — the README frames automatic failover as the whole product.
Do I need keys for every provider?
No — a provider without a configured key is skipped automatically, so the chain degrades rather than failing hard.

Alternatives

crazywoola/dsh-balance · lujianjun19/dsh-llm-github-copilot · LemCAE/dsh-balance

More plugins in Other

Browse more in Other

Guides for Other plugins