joyfoxai/dsh-eco-router
dsh-eco-router is a token-efficient model-routing flywheel for DeepSeek Harness. It captures OpenSquilla's "same budget, more capability" idea as a self-improving routing loop: it observes every turn's task -> model -> result, distills a per-category routing table with per-model error counts, persists it to eco_router.json, and exposes an eco_route tool that routes each task to the cheapest model tier that historically succeeded. It classifies the task by a coarse category (media / code / research / documents / comm / general) from the user message, observes the routed {provider, model} at the agent/request waterfall, and observes results from tools/result and agent/error. With autoRoute: true it also overrides the routed model at agent/request; otherwise it only recommends. All listeners are registered on the initiating agent's scoped context, so it observes only that agent's traffic.
Install
git clone https://github.com/joyfoxai/dsh-eco-router.git && npm install && npm run buildHONEST LIMITATION stated by the README itself: the @deepseek-ai/ packages this plugin depends on are not yet published to npm (they are workspace-internal to the deepseek-harness monorepo), so a plain npm install outside that repo will fail to resolve them. To build today you must either place the package under the harness monorepo's packages/ (or vendor it as a workspace) so the deps resolve as workspace packages, or wait for upstream to publish @deepseek-ai/ to npm and then pin the peerDependencies. The README's mount step adds a dsh-eco-router row to a composition. The npm names dsh-eco-router and @joyfoxai/dsh-eco-router were both NOT found on the registry on 2026-09-30, so there is no ready one-command install yet.
Compatibility
DeepSeek Harness. The README is explicit that the @deepseek-ai/* packages the plugin depends on (@deepseek-ai/cordis, @deepseek-ai/schemastery, @deepseek-ai/dsh-agent, @deepseek-ai/dsh-fs, @deepseek-ai/dsh-llm, @deepseek-ai/dsh-settings, @deepseek-ai/dsh-tools, plus the client packages) are NOT yet published to npm, so it must be built inside the harness monorepo. The plugin injects only host services (fs, tools, settings, llm) and publishes no service of its own, so its composition row needs no isolate realm. The browser half registers a settings.plugin.item card under Settings -> Plugins whose changes hot-apply via the settings watch (no restart).
Details
- Repo: joyfoxai/dsh-eco-router
- Category: Other
- Stars: 1
- Version: source build inside the harness monorepo (npm names dsh-eco-router / @joyfoxai/dsh-eco-router NOT published -- registry empty 2026-09-30); MIT
- Last push: 2026-08-14
- First seen: 2026-08-13
Recent updates
The README documents the dependency-status warning, the build commands (npm install, npm run build for the host half, DSH_BUILD_FACE=client npm run bundle for the browser half), the mount row (dsh-eco-router with config tiers and autoRoute), the runtime settings UI (autoRoute toggle plus a tiers multi-select sourced from llm.listModels, hot-applying), the observe/distill/persist/recommend/route stage table, and the file layout (src/index.ts, src/client/index.ts, preset/, docs/verify.png).
FAQ
- How do I install dsh-eco-router?
- There is no ready one-command install yet: per the README the @deepseek-ai/* packages it depends on are not published to npm, so you must build it inside the harness monorepo (place it under packages/ or vendor it as a workspace) and mount the dsh-eco-router row in a composition. The npm names are not published.
- How does it choose a model?
- The README states eco_route recommends the cheapest tier with no recorded errors for the task type, based on a per-category routing table it distills from observed task -> model -> result turns and persists to eco_router.json.
- Does it change my model automatically?
- Only if you opt in -- with autoRoute: true (configurable at runtime in the Settings -> Plugins card) it also overrides the routed model at the agent/request waterfall; otherwise it only recommends.
Alternatives
BruceLanLan/dsh-tier-router · tianji-qingtian/dsh-model-router · Letter2025/dsh-model-failover