DeepSeek Harness on Mingles Router

Run DeepSeek Harness on Mingles Router

An agent harness is the program around the model: it reads your files, runs commands, and loops until the job is done — the same idea as Claude Code or OpenAI Codex, except the model is yours to choose. DeepSeek Harness (dsh) is MIT-licensed and takes any OpenAI-compatible endpoint, so Mingles Router drops in as one provider and every model behind it becomes selectable.

Pick your model and paste your key — every command and value on this page updates live.

Endpoint: https://router.mingles.ai/v1 · key stays in your browser · no key entered? commands show <your-key>.

Install + configure

1. Install and start it

Needs Node.js. This starts the Web UI on http://127.0.0.1:3080 — dsh is a local web app, not a terminal CLI.

shell
npx @deepseek-ai/dsh web

2. Add us as a custom provider

Open Settings → ModelsAdd a custom provider (not “Add provider” — that one picks from the built-in catalog). Fill in the Provider ID, base URL, protocol and key from the table below.

The Provider ID is permanent — sessions and saved defaults reference it. To rename it later you add a new provider and delete the old one.

3. Pull the model list

Under Model catalog, hit Fetch available models. It calls GET /v1/models on the base URL you just entered, so all four of our models show up and you tick the ones you want — no typing ids by hand.

A 401 here means the key is wrong, not the URL.

4. Pick a model and go

Save, then choose the model in the composer’s model picker. Whatever you select also becomes the default for new sessions. Start on deepseek-ai/DeepSeek-V4-Flash-0731 — cheapest, and the model plan sizes are quoted in.

Exact values for “Add a custom provider”

Provider ID mingles
Base URL https://router.mingles.ai/v1
API protocol openai-completions
API key <your-key>
Model deepseek-ai/DeepSeek-V4-Flash-0731

Switch model

Coming from Claude Code or Codex: the mental model is the same — a model plus shell and file tools, looping on your repo. What changes is that the model is a dropdown rather than a fixed vendor, so you can run the cheap model for the bulk of a task and switch for the hard steps.

Before you file a bug: read the limits

Reasoning models spend the output budget on internal thinking, output is capped at 8192 tokens, there is no KV cache, and there are no built-in web tools. Most “it broke on Mingles Router” reports are one of these. See Model limits & behavior →

Frequently asked

What actually is a “harness”, in one sentence? +

The program that wraps a model and gives it hands — reading files, running commands, calling tools, and looping until a task is finished. Claude Code, OpenAI Codex and DeepSeek Harness are three harnesses; the model inside is a separate choice, which is the part we supply.

How is this different from Claude Code or Codex? +

Mainly on lock-in and interface. Claude Code runs Anthropic models, Codex runs OpenAI models; dsh is MIT-licensed and takes any OpenAI-compatible endpoint, so the model is yours to pick. It also runs as a local web UI on port 3080 rather than in your terminal. Being honest about the trade: Claude Code and Codex are mature products, dsh is in developer preview.

Developer preview — should I put it on real work? +

DeepSeek states plainly that dsh is in developer preview and that there will be compatibility-breaking changes. Treat it as something to evaluate, and keep a stable setup (Cursor, Cline, Aider) for work you cannot have interrupted by an upgrade.

Can I run Kimi or MiniMax in it, not just DeepSeek? +

Yes — that is the point of pointing it at us. dsh only sees one OpenAI-compatible provider; which model each request lands on is the id you picked in the model picker. It never needs to know the models come from different vendors.

Is this a fair way to compare models? +

It is the fairest one available: same harness, same tools, same repo, only the model id changes. Comparing Claude Code against Codex against a vendor CLI also compares three different harnesses, so you cannot tell which half of the result came from the model.

MISSING_CREDENTIAL or UNKNOWN_MODEL? +

MISSING_CREDENTIAL means the key was never stored — save it on the Models page, or set the environment variable that apiKeyEnv names. UNKNOWN_MODEL means the id is not on the provider: re-run “Fetch available models”, or check the id is exact — they are case-sensitive.

Can I send images? +

Not to our models — they are text-only, and a hand-entered model in dsh is treated as text-only until its config says otherwise, so an image is refused before it is sent rather than failing upstream.