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.

Cortiq Dsh Llm Router — DSH Plugin for DeepSeek Harness
← Plugins

cortiq-dsh-llm-router

Cortiq Dsh Llm Router

Умный маршрутизатор LLM-запросов для DeepSeek Harness (dsh). Классифицирует каждый промпт по типу задачи (code, math, translation и др.) и сложности (low/medium/high) через семантический роутер allaigate.com, затем делегирует вызов тому провайдеру, которы

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

npx -y @deepseek-ai/dsh plugin --profile web add cortiq-dsh-llm-router@0.2.2
READMECompatibilityVersions

Compatibility and provenance

Cortiq Dsh Llm Router is published as cortiq-dsh-llm-router and currently resolves to version 0.2.2. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
9/20/2026

Versions

0.2.2stable
8/21/2026
0.2.1stable
8/21/2026
0.2.0stable
8/21/2026
Show 6 more versionsCollapse versions
0.1.5stable
8/21/2026
0.1.4stable
8/21/2026
0.1.3stable
8/20/2026
0.1.2stable
8/20/2026
0.1.1stable
8/20/2026
0.1.0stable
8/20/2026

Related plugins

Loading related plugins…

Latest
0.2.2
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
281.9 kB
Files
35
Surface
web
License
MIT
Source
npm
GitHub
★ 2
Weekly downloads
41
Last push
8/21/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
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in models-usage.

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 the current session provider's today usage on the sidebar entryWhale 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 editinUsage Stats@ychris12138/dsh-usage-statsToken usage heatmap, provider balances, and subscription quotas for the dsh web GUICodex Connectdsh-codex-connectChatGPT OAuth and Codex models for DeepSeek Harness.

README

cortiq-dsh-llm-router 🧠✨

Your LLMs on autopilot. One key — every prompt is automatically dispatched to the best model.

Stop guessing which model to pick. Just type — the plugin figures out where to send each request.


🚀 Quick Start (1 minute)

dsh plugin add cortiq-dsh-llm-router
# Go to Settings → Models → Cortiq Router, paste your key
# Then pick "Cortiq Router · Auto" in the chat model selector

Done. The plugin handles everything from here.

One prerequisite: the router picks among the models your other provider plugins already serve (e.g. llm-deepseek). Keep at least one of them configured — the router never talks to a model vendor itself.


🎁 Free Trial

Get a free key for 1 month — no payment required.

👉 allaigate.com — sign up and get a cortiq_… key instantly.

No promo code needed. After the trial, plans start at just $1/month.


💰 What does it cost?

Without pluginWith plugin
All requests go to expensive modelsSimple requests → cheap model
Overpay 10–50×Save up to 90%
Manual model selection every timeFully automatic

🎯 What it does

The plugin is a smart dispatcher for your LLMs. It reads every prompt, understands what you're asking, and routes it to the right model.

Live example

You type: "Write a Python function to reverse a linked list"

Without pluginWith plugin
🤷‍♂️ Have to pick a model yourself🔍 Router: "This is code, low complexity (0.29)"
🎲 Guess: DeepSeek V4 Pro ($)🧠 Rule: code @ low → fast model
Response in 3s, paid $0.01⚡ Response in 0.5s, free

But: "Implement a distributed consensus algorithm"

Without pluginWith plugin
🤷‍♂️ Guess again🔍 Router: "This is code, high complexity (0.78)"
Maybe Flash is enough?🚀 Escalation: hard request → powerful model
Response might be bad✅ Strong model handles it well

⚙️ What can you configure?

Complexity thresholds

complexityBands:
  low:   0.35    # score ≤ 0.35 → simple task
  medium: 0.65   # ≤ 0.65 → medium, > 0.65 → hard

Which models at which complexity

globalTiers:
  low:    [deepseek-v4-flash]           # simple → fast & cheap
  medium: [deepseek-v4-pro]             # medium → more powerful
  high:   [deepseek-v4-pro]             # hard → strongest

Per-task rules

taskRules:
  code:
    low:  [deepseek-v3-chat]            # simple code → fast model
    high: [deepseek-v4-pro]             # complex code → powerful model
  translation: [deepseek-v3-chat]       # simple form: same model at all tiers
  creative-writing:
    low:  [deepseek-v4-flash]
    high: [deepseek-v4-pro]

🎮 Who is this for?

YouWhy you need it
AI agent developersYour agent picks the right model automatically, saving tokens
Freelancers / solo devsSave on API costs without sacrificing quality
Teams / startupsOne key, automatic routing, full transparency
EnthusiastsSmart routing for $1/month — no headache

📊 Real-world accuracy

We ran 8 different prompt types through the live allaigate router:

Prompt                                                    Task              Conf    → Routed To
─────────────────────────────────────────────────────────────────────────────────────────────
Write a Python function to reverse a linked list          code              0.991   fast model ✓
Solve quadratic equation x² - 5x + 6 = 0                  math              0.980   medium model
Translate to French: Hello world                          translation       0.988   fast model ✓
Write a poem about AI consciousness                       creative-writing  0.950   fast model ✓
What is the capital of France?                            qa                0.998   medium model
Summarize: The quick brown fox...                         summarization     0.980   medium model
Extract date and price from invoice                       extraction        0.997   medium model
How are you doing today?                                  chitchat          1.000   medium model

8/8 — all task types correctly identified.
✓ = task rule applied → model chosen intentionally


🔄 How it works

You: "write code to reverse a list"
    │
    ▼
┌─────────────────────────────┐
│ 1. Text extraction           │ ← only last_user (PII stays local)
└──────────┬──────────────────┘
           │ POST /v1/route
           ▼
┌─────────────────────────────┐
│ 2. Semantic router           │ ← router.allaigate.com
│    task=code, complexity=low │
└──────────┬──────────────────┘
           │
           ▼
┌─────────────────────────────┐
│ 3. Routing table             │ ← your configuration
│    code @ low → flash        │
│    ↳ fallback → flash/pro    │
└──────────┬──────────────────┘
           │ invoke
           ▼
┌─────────────────────────────┐
│ 4. Delegated to the provider │
│    plugin that serves it     │
└─────────────────────────────┘

🎛 Picking a policy per chat

The model picker lists four entries. All of them route; the last three pin the policy profile for that conversation, so you don't have to open settings:

EntryWhat it does
AutoRoutes using the profile configured in settings
Auto · cost saverPrefers the cheap end of every chain
Auto · balancedThe middle ground
Auto · quality firstEscalates sooner to the strong models

⚙️ Settings UI

The plugin adds its own Cortiq Router section to the harness settings, in every language it ships:

What you get there
Classifier keypaste it once; stored through the credentials service, with a configured / not-configured badge
Endpoint & behaviourclassifier URL, policy profile, what gets classified, character cap, timeout, decision logging
Complexity bandswhere low / medium / high sit on the 0…1 score, with a low-below-medium check
Model chainsthe per-tier chains and the fallback model
Per-task rulesa table of task × low / medium / high / any, with add and remove

It is a section of its own, not a card inside Models. The Models page picks its provider editor by namespace and offers third-party providers only a note pointing at settings.yaml, with Apply disabled — so the plugin registers through the same settings.section slot the Models page itself uses.


🌍 Languages

The plugin ships its own copy in 7 languages — 🇬🇧 English · 🇷🇺 Русский · 🇨🇳 中文 · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇹🇷 Türkçe — selected by the language setting:

llm-cortiq-router:
  language: auto   # auto | en | ru | zh | de | fr | es | tr

auto follows the harness UI language. Note that the dsh browser client itself ships only English and Chinese, so auto resolves to one of those two; pick any of the other five explicitly here to use it.

Translated: the entries this provider shows in the model picker, and the message shown when no candidate model could serve a call — the strings a provider plugin actually puts in front of you. Log lines stay English: they are diagnostics meant for issues and grep.


📦 Installation

# From DSH plugin store
dsh plugin add cortiq-dsh-llm-router

# Or via npm
npm install cortiq-dsh-llm-router

Or add to your cordis.patch.yml:

- insert:
    - id: llm-cortiq-router
      name: 'cortiq-dsh-llm-router'

🔑 Get Your Key

  1. Open allaigate.com
  2. Sign up — get a free 1-month key instantly
  3. Copy your key (cortiq_…)
  4. In DSH: Settings → Models → Cortiq Router → paste your key

Or set the environment variable:

export CORTIQ_ROUTER_KEY=cortiq_your_key_here

💡 Tips

  • Start with defaults — they're sensible and work out of the box; the classifier lives at router.allaigate.com, and routerUrl points a self-hosted deployment somewhere else
  • Add per-task rules for tasks that matter most to you
  • Tweak complexityBands to fine-tune when a request is considered "hard"
  • Watch the log — with echoRouting on (the default), every call prints task=… tier=… score=… → provider/model, so you can see what it chose
  • Chains survive a missing key — a candidate whose provider refuses the call (no credential, no adapter, unknown model) is skipped and the next one answers; only a provider that already started streaming keeps the call
  • Name a route explicitly — a candidate written as provider:model (e.g. deepseek-official:deepseek-v4-pro) skips catalog lookup entirely

📄 License

MIT — do whatever you want.


One key. No guessing. Every request goes to the best model. 🚀