---
title: "Mistral Vibe with EU-hosted models · Setup guide"
description: "Add inference.eu as a provider in Mistral Vibe's config.toml and run the Vibe coding CLI on open-weight models processed in EU data centres."
canonical: "https://inference.eu/integrations/mistral-vibe/"
language: "en"
---

Coding agents · Mistral Vibe

# Use Mistral Vibe with open-source models hosted in the EU

Mistral Vibe is Mistral AI's coding agent for the terminal. Besides Mistral's own API, it accepts any OpenAI-compatible provider in its config.toml, so you can run it on the open-weight models at inference.eu, processed in European data centres.

[Contact sales](https://inference.eu/contact/)[Setup](#setup)

1.  01API format: OpenAI
2.  02EU data centres
3.  03Covered by one DPA

## Set it up in a few minutes

1.  1

    Create an API key in your inference.eu account and export it as `INFERENCE_EU_API_KEY`.

2.  2

    Open `~/.vibe/config.toml` and add a `[[providers]]` block named `inference-eu` with the inference.eu base URL, `api_style = "openai"` and `backend = "generic"`.

3.  3

    Add a `[[models]]` block for each model, with the inference.eu model id as `name`, `inference-eu` as `provider` and a short `alias`.

4.  4

    Set `active_model` to the alias you want to use by default.

5.  5

    Start `vibe` in your project and ask it to read a file to confirm the connection.

~/.vibe/config.toml

```
active_model = "qwen3-coder"
enable_telemetry = false

[[providers]]
name = "inference-eu"
api_base = "https://api.inference.eu/v1"
api_key_env_var = "INFERENCE_EU_API_KEY"
api_style = "openai"
backend = "generic"

[[models]]
name = "qwen3-coder-480b-a35b-instruct"
provider = "inference-eu"
alias = "qwen3-coder"

[[models]]
name = "glm-5.3"
provider = "inference-eu"
alias = "glm"
```

## What Mistral Vibe is

Mistral Vibe is an open-source command-line coding agent from Mistral AI. It reads and edits files, runs shell commands, searches your repository and can delegate work to subagents, with permissions you control per tool. It also supports MCP servers, custom agents and hooks.

By default Vibe talks to Mistral's API, but providers and models are plain entries in `config.toml`. A provider with the `generic` backend sends standard OpenAI Chat Completions requests to whatever `api_base` you set, which is how you point Vibe at inference.eu.

## How the configuration works

Vibe reads `~/.vibe/config.toml`. The `[[providers]]` block gives the provider a `name`, sets `api_base` to the inference.eu base URL ending in `/v1`, and names the environment variable holding your key in `api_key_env_var`. `api_style = "openai"` and `backend = "generic"` tell Vibe to use the standard OpenAI wire format.

Each `[[models]]` block links an inference.eu model id (`name`) to the provider and gives it an `alias`. `active_model` refers to that alias. Use `--model <alias>` to try another model for a single run without changing the default, or switch inside a session from the model picker.

## Which models to choose

Vibe works in a loop of reading, editing and running commands, so it needs a model that calls tools reliably and keeps track of a growing context. `qwen3-coder-480b-a35b-instruct` is a strong default: it is trained for agentic coding and produces precise edits.

For architecture questions, larger refactors or debugging that needs more reasoning, add `glm-5.3` or `kimi-k3` as a second alias and switch when needed. `gpt-oss-120b` is quick and suits subagents or short tasks. The default temperature for custom models is low, which suits code; raise it per model only if you want more varied output.

## Troubleshooting

A 401 error means Vibe sent no key or the wrong one. Check that `INFERENCE_EU_API_KEY` is exported in the shell that starts Vibe and that `api_key_env_var` names exactly that variable. A 404 usually comes from an `api_base` with an extra path.

An "unknown alias" error means `active_model` or `--model` does not match any `alias`. "Model not found" from the API means `name` differs from the inference.eu id. If Vibe reports incomplete streams and retries, check you are on a current version; `emits_finish_reason = false` on the provider is only needed for servers that end streams without a finish reason.

## Keeping code and data in the EU

With inference.eu as the provider, the files, diffs and command output Vibe sends to the model are processed in EU data centres and never used for training. We sign a data processing agreement under Article 28 GDPR, publish our subprocessor list and bill in euros.

Vibe can also send usage telemetry and crash reports to Mistral, separately from model requests. Set `enable_telemetry = false` in `config.toml` to turn this off. Mistral AI is a French company, but telemetry is governed by its own privacy policy, so disabling it keeps your sessions limited to traffic between Vibe and inference.eu.

## Mistral Vibe

Category

Coding agents

Maker

Mistral AI

API format

OpenAI

Processing

EU data centres

Website

[mistral.ai](https://mistral.ai/products/vibe)

Documentation

[docs.mistral.ai](https://docs.mistral.ai/vibe/code/cli/configuration)

## Mistral Vibe: common questions

The questions buyers, developers and legal teams ask us most. Something missing? Ask us directly.

Yes. Vibe accepts any OpenAI-compatible provider in \`~/.vibe/config.toml\`. Add a \`\[\[providers\]\]\` block with \`backend = "generic"\`, list the models with \`\[\[models\]\]\`, and select one by alias with \`active\_model\` or \`--model\`.

Qwen3 Coder 480B is a strong default for Vibe's edit and command loop. Add GLM-5.3 or Kimi K3 for harder reasoning and refactors, and gpt-oss-120b for subagents or quick tasks where speed matters more than depth.

\`name\` is the model id sent to the API and must match the inference.eu id exactly, for example \`qwen3-coder-480b-a35b-instruct\`. \`alias\` is the short label you use in \`active\_model\`, \`--model\` and the model picker.

Start Vibe with \`--model <alias>\`, for example \`vibe --model glm\`. This uses the model for that session only and leaves \`active\_model\` unchanged. Inside a session you can also pick another configured model from the model picker.

Model requests go to inference.eu. Vibe can still send usage telemetry and crash reports to Mistral unless you set \`enable\_telemetry = false\`. Turn it off if you want no session data to go anywhere other than inference.eu.

The key is missing or wrong. Make sure \`INFERENCE\_EU\_API\_KEY\` is exported in the shell that starts Vibe and that \`api\_key\_env\_var\` contains that exact name. Restart Vibe after changing environment variables.

Vibe expects streams to end with a finish reason and retries if one is missing. inference.eu sends a finish reason, so this usually points to a network interruption or an old Vibe version. Update Vibe and try again before changing provider settings.

Yes. Providers and models are lists, so you can keep the \`mistral\` provider and add \`inference-eu\` next to it. Use \`allowed\_models\` to limit the picker to inference.eu models if your team should only use EU-processed open-weight models.

No. \`input\_price\` and \`output\_price\` only feed Vibe's local cost display and default to zero. Billing for inference.eu usage is in euros and shown in your inference.eu account, independently of what Vibe displays.

Yes. Built-in tools, MCP servers and subagents work with any provider that supports OpenAI-style tool calls. Choose a model with dependable tool calling, such as Qwen3 Coder 480B or GLM-5.3, for the best results.

[Ask a question](https://inference.eu/contact/)

## Related

[All integrations](https://inference.eu/integrations/)

-   [OpenCodeRun the OpenCode terminal agent on open-weight models processed in EU data centres. Add one provider block to opencode.json and keep your code in Europe.Coding agents](https://inference.eu/integrations/opencode/)
-   [AiderRun the Aider pair programmer on open-weight models processed in EU data centres. Two environment variables and the openai/ model prefix are all it takes.Coding agents](https://inference.eu/integrations/aider/)
-   [OpenAI Codex CLIRun OpenAI's Codex CLI on open-weight models processed in EU data centres. Add a model\_providers block to config.toml and keep code in Europe.Coding agents](https://inference.eu/integrations/openai-codex/)

## Move your AI workloads to EU infrastructure

Tell us which models you use and roughly how much traffic you have. We reply within one working day with pricing and next steps.

-   Reply within one working day
-   Pricing for your volume
-   DPA ready to sign
