Coding agents
Mistral Vibe
Mistral's open-source terminal coding agent, pointed at Melious through its OpenAI-compatible provider
Vibe is Mistral AI's open-source terminal coding agent. Distributed via uv or a curl install script, configured through a TOML file, multi-provider by design — you can wire several backends into one config and reference them per model. Python-based, so startup is a tick slower than Go-based agents, but inference dominates once warmed up. We ship Vibe support because it's the Mistral-native client and several models in our catalog are Mistral-family; if you're already inside that ecosystem, keeping the mental model while routing through Melious is a small step.
With the Melious CLI
With the Melious CLI installed and signed in, two commands take you from nothing to a session:
melious tools install vibe
melious launch vibeOn Windows, tools install asks, then runs uv tool install mistral-vibe — it needs uv on your PATH. On macOS and Linux it prints Mistral's installer command instead; run that line yourself. Then launch from inside your project.
The first launch in a project asks Trust this workspace? The agent runs as you, with your Melious key, so Melious asks before handing it over; the answer defaults to no. Workspace trust covers what a grant means and how to revoke it.
Melious generates a config.toml in its own directory on every launch and points Vibe at it with VIBE_HOME, so your ~/.vibe stays untouched. The config names one Melious model — your main tier — and tells Vibe to read the key from MELIOUS_API_KEY, which Melious sets for that process only. It no longer writes a .env file; one left by an older Melious version stays where it is until you delete it. Models, -- passthrough, and exit status: launching a coding agent.
Manual setup (alternative)
For when you'd rather not use the Melious CLI. The config below mirrors the one Melious generates.
Install Vibe
Vibe's official installer, for macOS and Linux:
curl -LsSf https://mistral.ai/vibe/install.sh | bashOr via uv:
uv tool install mistral-vibeOr pip:
pip install mistral-vibeAdd Melious as a provider
Create ./.vibe/config.toml in your project (Vibe checks this first), or ~/.vibe/config.toml for a global default. Vibe uses TOML array-of-tables for [[providers]] and [[models]] and reads the API key from an env var rather than embedding it in the file:
active_model = "melious-main"
[[providers]]
name = "melious"
api_base = "https://api.melious.ai/v1"
api_key_env_var = "MELIOUS_API_KEY"
api_style = "openai"
backend = "generic"
[[models]]
name = "<MODEL_ID>"
provider = "melious"
alias = "melious-main"
temperature = 0.2active_model references a model's alias, not its name. Add more [[models]] blocks with their own alias to switch between them. Optional per-model fields include temperature, input_price, output_price (USD per 1M tokens, used in Vibe's cost UI).
Browse melious.ai/hub/models for the current list of model IDs.
Run Vibe
export MELIOUS_API_KEY=sk-mel-<YOUR_API_KEY>
vibeOr set it in ~/.vibe/.env so you don't have to export per session:
MELIOUS_API_KEY=sk-mel-<YOUR_API_KEY>This file stores the key in plaintext. Exporting it in the session instead avoids that.
What's different
- Multi-provider by design. Mix Melious with other providers in the same config. Add another
[[providers]]block and reference it from a[[models]]block viaprovider = "<name>". - Python-based. Startup is a tick slower than Go-based agents. Once warmed up, roundtrips are bound by the inference, not the client.
- Tool calls follow OpenAI shape. Same
tool_callsschema as OpenCode, so the same per-model capability check applies. Not every open-weight model handles tools — check_meta.capabilities.tool_useonGET /v1/models?include_meta=trueor filter at melious.ai/hub/models.
When it breaks
uv: command not foundwhen going viauv— install it first:curl -LsSf https://astral.sh/uv/install.sh | sh. Or use the curl installer above, which doesn't needuv.provider not found— theprovider = "..."value in a[[models]]block doesn't match thenameof any[[providers]]block. Spelling and exact casing matter.MELIOUS_API_KEY not set— Vibe reads the key from the env var named inapi_key_env_var. Export it, drop it in~/.vibe/.env, or usemelious launch vibe, which sets it for you.
Errors and retry patterns: Errors.