Mistral Vibe CLI and Claude Code are both terminal coding agents, and the choice is structural rather than a matter of which is smarter: Vibe CLI is Apache-2.0 software whose provider list is a hand-edited TOML file, while Claude Code is proprietary software that speaks one protocol to Claude models and requires a paid Anthropic account. Vibe CLI has the wider bring-your-own-key surface. Claude Code has the documented, supported one. Everything below is dated, and nothing here is a runtime compatibility test.
One disambiguation first, because it changes what the prices mean. Mistral's own help centre now publishes that Le Chat is Vibe, and "Mistral Vibe" names the whole product family — Vibe Work, Vibe Chat and Vibe Code across web and mobile. This page is only about the terminal agent: the mistral-vibe package from the mistralai/mistral-vibe repository, binary vibe, at v2.25.5. The Mistral plan prices further down buy an account that covers far more than that binary. On the other side, Claude Code is Anthropic's own client and not Claude Code Router, a separate third-party proxy.
Which one to pick, and what switching costs
Pick Vibe CLI if the provider decision has to stay yours, or if you want to try a terminal agent before paying anyone. Mistral's pricing page lists "Limited coding sessions" on the Free plan, and the CLI itself is free software you can install with pip install mistral-vibe on Python 3.12 or later. Its configuration documentation uses a third-party gateway as the worked example for a custom provider, so pointing it somewhere else is a documented pattern rather than a hack. Its repository ships Agent Client Protocol setup instructions for Zed, JetBrains IDEs and Neovim, and Mistral's help centre lists a first-party VS Code extension alongside the command-line tool.
Pick Claude Code if your work is already on Claude models and you want the vendor's own client on the vendor's own protocol. Its setup documentation states that "Claude Code requires a Pro, Max, Team, Enterprise, or Console account. The free claude.ai plan does not include Claude Code access." In exchange you get a maintained native binary that auto-updates in the background, six named permission modes, and an entire gateway compatibility guide that tells you exactly which headers and body fields a custom endpoint has to forward. Mistral's CLI documentation carries no equivalent compatibility reference for Vibe's third-party path.
Coming from the other direction — you already run Claude Code and are weighing Vibe CLI — the migration cost is configuration, not code. Neither client changes your repository. What does not travel is everything around it: Claude Code keeps settings in ~/.claude, a project .claude directory and .mcp.json, while Vibe CLI keeps its own in ~/.vibe/config.toml, a project ./.vibe/config.toml and a trusted-folders file. There is no shared format and no importer, so budget an afternoon of re-declaring providers, permissions and MCP servers rather than a migration tool. The permission habits do not map cleanly either, which the next table makes concrete.
Mistral Vibe CLI vs Claude Code, side by side
| Dimension | Mistral Vibe CLI | Claude Code |
|---|---|---|
| Vendor and license | Mistral AI; CLI is Apache-2.0 | Anthropic; npm package declares "SEE LICENSE IN README.md" |
| Release checked | v2.25.5, published September 18, 2026 | npm 2.1.277, published September 18, 2026; the stable tag is 2.1.267 |
| Install and runtime | Shell script, uv tool install or pip install; Python 3.12+ | Installer, Homebrew, WinGet, apt/dnf/apk or npm; the npm package installs a native binary that "does not itself invoke Node" |
| Account needed | A Mistral account; the Free plan lists limited coding sessions | Pro, Max, Team, Enterprise or Console; free claude.ai does not include it |
| Default model | Mistral Medium 3.5, under the id mistral-vibe-cli-latest | A Claude model, selectable with /model or the ANTHROPIC_MODEL family of variables |
| Permission model | Agent profiles: ask, plan, accept-edits (the default), auto-approve, or a custom profile, plus --auto-approve / --yolo | Six named modes: default, acceptEdits, plan, auto, dontAsk, bypassPermissions; "On Pro, Max, and Team plans, the built-in starting permission mode is auto mode" |
| Context handling | Auto-compacts at 200,000 tokens by default; Mistral describes Medium 3.5 as a 256k-context model | Context window assumed 200K for an unrecognized id, or 1M when the id carries [1m] |
| Editor surface | Agent Client Protocol clients plus a first-party VS Code extension | VS Code extension, JetBrains plugin and a Desktop app |
| Third-party endpoint | Hand-edited [[providers]] TOML; no add-provider UI | ANTHROPIC_BASE_URL plus a credential variable, with a published compatibility guide |
| Telemetry default | On; disable with enable_telemetry = false in config.toml | Governed by your account type; see Anthropic's data-usage documentation |
Sources checked September 19, 2026: the GitHub API and PyPI metadata for Vibe CLI, the npm registry and permission modes for Claude Code. Vibe's release cadence is fast — four releases between September 10 and September 18, 2026 — so pin any configuration claim to a version rather than to the docs page you read last month.
What each account costs
| Plan | Published price | What the published bullets say about coding |
|---|---|---|
| Mistral Free | $0 | "Limited coding sessions"; "$10 /mo in API credits" |
| Mistral Pro | $14.99/month; $5.99 for verified students | "All-day coding in the CLI, IDE, or on web"; "$15 /mo in API credits" |
| Mistral Team | $24.99 per user/month, $50/month minimum | Adds storage, domain verification and data export |
| Claude Pro | $17/month on an annual subscription ($200 billed up front); $20 monthly | Includes Claude Code |
| Claude Max | From $100 per month | "Choose 5x or 20x more usage than Pro per 5-hour session" |
| Claude Team | $20 per seat/month annual, $25 monthly; Premium seat $100 annual, $125 monthly | Includes Claude Code |
Read from mistral.ai/pricing and claude.com/pricing on September 19, 2026. Three honest gaps. Neither vendor publishes a usage figure you could divide into a monthly price — "limited coding sessions", "all-day coding" and "5x or 20x more usage than Pro per 5-hour session" are the published wording, and any hours-per-month number you see elsewhere is somebody's estimate. The Max page prints only "From $100", so this guide does not state a price for the 20x tier. And seat figures differ between Anthropic's pricing page and parts of its deployment documentation, so confirm the seat quote in checkout before ordering.
One more thing the plan table cannot tell you: Mistral lists the monthly API credits as a plan benefit without scoping them to a product, so whether they can be spent on Vibe CLI usage specifically is not something the pricing page answers. Check it in your own account before treating those credits as a coding budget.
Pointing either client at your own API key
Vibe CLI merges [[providers]] entries by name and [[models]] entries by alias, and its documented precedence, highest first, is admin config, command-line flags, environment variables, the project ./.vibe/config.toml, then the user ~/.vibe/config.toml. With api_style = "openai" the request goes to {api_base}/chat/completions with a bearer token, so the base URL ends in /v1.
# Vibe CLI reads ./.vibe/config.toml first, then ~/.vibe/config.toml.
active_model = "kunavo-sonnet"
[[providers]]
name = "kunavo"
api_base = "https://api.kunavo.com/v1"
api_key_env_var = "KUNAVO_API_KEY"
api_style = "openai"
backend = "generic"
[[models]]
name = "claude-sonnet-4-6"
provider = "kunavo"
alias = "kunavo-sonnet"
display_name = "Claude Sonnet 4.6 (Kunavo)"Two things that are easy to get wrong here. The v2.25.5 source resolves api_style through a plain dictionary lookup with no validation, so a typo raises an error at request time rather than when the config loads. And there is no provider-add UI: /config and --setup do not create third-party providers, so this file is hand-edited. The source also exposes "anthropic", "openai-responses", "reasoning" and "vertex-anthropic" alongside "openai" — the Anthropic one posts to /v1/messages with x-api-key, so its api_base must not include /v1 — but Mistral's documentation lists none of them. The Unified Harness that v2.25.5 promoted out of experimental does carry them — the same source hands api_style to it and implements each style's credential scheme on that path — so treat them as source-verified and undocumented rather than as legacy-only, and as something this page has not run.
Claude Code has exactly one route, and it is documented end to end. Set the base URL and a credential; the gateway page notes that "While a gateway credential variable or apiKeyHelper is active, a developer's claude.ai subscription isn't used: the credential replaces the subscription login for that session, and the subscription's usage limits don't apply." Setting the base URL without a credential does not replace the subscription.
export ANTHROPIC_BASE_URL="https://api.kunavo.com"
export ANTHROPIC_AUTH_TOKEN="sk-kn-..."
export ANTHROPIC_MODEL="claude-sonnet-4-6"
claudeKunavo exposes chat completions, responses and an Anthropic-native Messages endpoint, and its Messages route accepts the credential in either Authorization or x-api-key, which is what lets both clients authenticate the same way. See the base-URL reference and the Claude Code integration guide. These are published configuration references, not compatibility tests.
What a third-party endpoint does not get
This is the part the feature tables miss, and it is the strongest reason to read the source rather than the marketing page.
In Vibe CLI, not all your traffic goes to your provider. Background "utility" completions — the small calls that name conversations and worktrees — are routed to Mistral's own mistral-vibe-cli-fast model whenever a Mistral provider is usable, and the built-in defaults always configure one, even when your session's active provider is something else. The v2.25.5 source is explicit about this and about the fallback: when no Mistral provider is usable, the utility call goes to the session's active model instead. In practice that means an unset MISTRAL_API_KEY, or excluding the alias through allowed_models. Smart Approve goes further: its 2.25.1 changelog entry says the classifier "now runs its classifier on the fast Mistral model regardless of the session's active model", and it is Unified-Harness-only, so a Kunavo-only session realistically lives in accept-edits or plan rather than Smart Approve. The connectors bootstrap is likewise gated on a provider whose backend is mistral, and browser sign-in wants that plus configured browser-auth URLs; a provider declared the way the block above declares one is credential-only. And third-party providers configured without an API key environment variable were failing every turn on the Unified Harness until the v2.25.5 fix, which is recent enough to be worth knowing before you debug your own config.
There is also a sampling detail that decides whether your first request works at all. Vibe's OpenAI path builds its payload with temperature unconditionally, while its Anthropic path never sends the field at all. That matters because Kunavo's catalog marks temperature, top_p and top_k unsupported on several of its Claude listings and strips them before dispatch; a route that forwarded them verbatim would turn a client default into a hard rejection. That is why the api_style = "openai" configuration above is the one this page shows.
On Claude Code's side, a custom base URL changes defaults too, and Anthropic documents which. Token counting is the clearest: /v1/messages/count_tokens is optional, and "when they're absent, Claude Code falls back to a character-based estimate of context usage", so /context shows approximate numbers against any gateway that does not serve it — Kunavo does not. Fine-grained tool streaming is off by default behind a custom base URL. Gateway model discovery is off unless you set CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1, and it drops any id not containing "claude" or "anthropic". The fast mode availability check and the WebFetch domain safety check still call api.anthropic.com directly and never appear in gateway logs. And the ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES variables "have no effect behind an ANTHROPIC_BASE_URL gateway".
Two Kunavo-specific boundaries, read from its own source on September 19, 2026. Its Messages endpoint serves only models whose slug starts with claude-, so Vibe's "anthropic" api_style cannot reach anything else through it. And that route reads only the credential headers from the request: the four anthropic-beta values Vibe's Anthropic adapter always sends are neither forwarded upstream nor rejected — they are ignored. The JSON body, including any cache_control marker, is passed to the dispatcher as sent; whether that produces cache hits on a given model is not something this page measured. Prompt caching covers what the rates look like when a route does support it.
An illustrative token cost for one session
These are token arithmetic, not measured task costs and not a bill ceiling. Assume one session that sends 200,000 uncached input tokens and receives 12,000 output tokens. The first row is Mistral's own published rate for Vibe CLI's default model, shown for comparison — Kunavo does not sell Mistral models. The remaining rows are live Kunavo catalog rates per million tokens.
| Model | Input / output per 1M | Billed by | Estimate for the assumed session |
|---|---|---|---|
| Mistral Medium 3.5 | $1.50 / $7.50 | Mistral's own API | $0.390 |
| Claude Haiku 4.5 | $0.40 / $2.00 | Kunavo catalog | $0.104 |
| Claude Sonnet 4.6 | $1.20 / $6.00 | Kunavo catalog | $0.312 |
| Claude Sonnet 5 | $2.00 / $10.00 | Kunavo catalog | $0.520 |
| Claude Opus 5 | $2.00 / $10.00 | Kunavo catalog | $0.520 |
Mistral's figure comes from its API price list, and Vibe's own shipped configuration declares the same two numbers for its default model. Note that the literal id mistral-vibe-cli-latest does not appear on any Mistral price table, and at least one third-party calculator quotes a different rate for it, so the honest thing to quote is Mistral Medium 3.5's published rate rather than a price for the id.
On the Kunavo side the per-model position against Anthropic's list price differs and is worth stating rather than averaging: Claude Sonnet 4.6 lists at $1.20 / $6.00 against an official reference of $3.00 / $15.00, ~60% off on output, while Claude Sonnet 5 sits at $2.00 / $10.00 — the same as Anthropic's published rate, not below it. Kunavo's catalog amount is a billing floor rather than a cap: when the upstream reports its charge, the bill is the greater of catalog cost and upstream cost times the applicable markup. Cache charges and external tools sit outside this example. The minimum top-up is $10 in prepaid credit, which funds a balance rather than buying a plan — see billing details.
Trying it without guessing
Run the same bounded task twice — one file, one bug, one investigation across several files — once in each client, and read the charge your account actually recorded for it. That answers the question a plan table cannot: whether the cheaper listed rate also finished the work. Keep a working route available while you try, because neither configuration above has been runtime-tested against Kunavo. Start from the Claude Code integration guide for the Claude Code side, and create a Kunavo account when you are ready to fund a key.
Weighing other terminal agents on the same axes? OpenCode vs Claude Code and Gemini CLI vs Claude Code compare two more clients with the same split between a free binary and a metered API bill, and Claude Code without a subscription covers the credential path in detail.
FAQ
Is Mistral Vibe better than Claude Code?
No benchmark answers that here, and a comparison that ranks two coding agents on quality without publishing a run is guessing. The differences that are checkable are structural. Vibe CLI is Apache-2.0 software that reads a hand-edited TOML file and can be pointed at any OpenAI-compatible endpoint, and Mistral's free plan lists limited coding sessions. Claude Code is proprietary software that speaks one protocol, the Anthropic Messages API, requires a Pro, Max, Team, Enterprise or Console account, and documents its gateway path in detail. Pick on which of those constraints you can live with, then measure both on your own repository.
Is Mistral Vibe free?
The Vibe CLI software is free: it is Apache-2.0 on PyPI as mistral-vibe, and installs with pip, uv or a shell script. What costs money is inference. Mistral's Free plan lists “Limited coding sessions” and “$10 /mo in API credits”, Pro is $14.99 per month ($5.99 for verified students) and lists “All-day coding in the CLI, IDE, or on web”. Mistral publishes no number for how many sessions either allowance buys, so no honest page can convert a plan into hours. Claude Code is the sharper contrast: its own setup documentation says the free claude.ai plan does not include Claude Code access at all.
Is Mistral Vibe open source?
The CLI is. The GitHub repository mistralai/mistral-vibe is Apache-2.0, not archived, and the PyPI package declares the same license. “Fully open source” is an overclaim at v2.25.5, though: pyproject.toml pins mistralai-vibe-local-harness==0.5.1, a separate PyPI package described as the local Unified Harness runtime and native bindings, published with no license field, no license expression, no classifiers and no project URLs or source repository. The 2.25.5 changelog also drops the “experimental” label from the Unified Harness and names --legacy-harness as the escape hatch back to the Python one. Claude Code is not open source either: its npm package declares “SEE LICENSE IN README.md” rather than an OSI license.
Can Mistral Vibe CLI use Claude models?
Yes, through its own provider configuration rather than a switch. Vibe CLI merges [[providers]] entries by name and [[models]] entries by alias from ./.vibe/config.toml or ~/.vibe/config.toml, and Mistral's own configuration documentation uses a third-party gateway as its worked example. With api_style = “openai” the CLI posts to /chat/completions with a bearer token, so the api_base ends in /v1. The v2.25.5 source also exposes api_style values “anthropic”, “openai-responses”, “reasoning” and “vertex-anthropic”, but Mistral's documentation shows only “openai”, so treat the others as source-verified and undocumented. The Unified Harness that v2.25.5 promoted out of experimental carries them too — the same source hands api_style straight to it and implements each style's credential scheme on that path — but this page has run none of them.
Can Claude Code use Mistral models?
No, and Anthropic says so directly: its gateway documentation states that Anthropic “doesn't endorse, maintain, or audit third-party gateway products, and doesn't support routing Claude Code to non-Claude models through any gateway.” The wire format narrows it further: an ANTHROPIC_BASE_URL gateway must serve /v1/messages in the Anthropic Messages format, and gateway model discovery, which is off unless CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 is set, keeps only model ids containing “claude” or “anthropic”. Read that filter as unsupported rather than blocked, though: the same document says it governs the /model picker and that ids it drops can still be configured by hand. Kunavo draws the line from its own side: its Messages endpoint rejects any model whose slug does not start with claude-.
What model does Mistral Vibe CLI use by default?
Mistral Medium 3.5. Mistral's own announcement says it “becomes the default model in Le Chat” and “also replaces Devstral 2 in our coding agent, Vibe CLI”, and the v2.25.5 source agrees: the default active model is the id mistral-vibe-cli-latest with the display name “Mistral Medium 3.5”. Any article saying Vibe CLI runs Devstral 2 by default predates that change. Mistral's API price list quotes Mistral Medium 3.5 at $1.5 per million input tokens and $7.5 per million output tokens, and Vibe's shipped configuration declares the same two numbers.
Which is cheaper, Mistral Vibe or Claude Code?
They are not billed the same way, so the comparison only works once you fix the route. On plans, Mistral Pro is $14.99 per month against Claude Pro at $17 per month on an annual subscription ($200 billed up front) or $20 monthly, and neither vendor publishes a usage number you could divide into those prices. On tokens, both clients can run against a metered API key instead, and then the model rate decides the bill rather than the client. Cheapest listed rate and cheapest way to finish the task are still different questions: a model that needs three attempts can cost more than a dearer one that needs a single pass.
Checked September 19, 2026: the GitHub and PyPI APIs for mistral-vibe and its harness dependency; the v2.25.5 source, changelog and README; docs.mistral.ai's CLI configuration page; mistral.ai/pricing, mistral.ai/pricing/api, the Mistral Medium 3.5 announcement and the Mistral help-centre article on the Vibe rename; the npm registry entry for @anthropic-ai/claude-code; and code.claude.com's setup, permission-modes, gateway and gateway-compatibility pages. Kunavo's own endpoint behavior was read from its source the same day. Neither client was installed or run against Kunavo, so nothing here is a compatibility test, and every dollar figure is illustrative token arithmetic rather than a measured task cost.