Mistral Vibe
Mistral Vibe is Mistral’s open-source CLI coding assistant. It speaks the OpenAI Chat Completions API, which optiq serve exposes by default. That means it drives any OptiQ-served model, including Mistral’s own Devstral.
Quick start: optiq run
One command starts optiq serve for the model (or reuses one already running on the port), configures Mistral Vibe for that session only, and launches it. When Mistral Vibe exits, a server it started is stopped. Arguments after -- go to Mistral Vibe.
# interactive $ optiq run vibe -m mlx-community/Qwen3.6-27B-OptiQ-4bit # one-shot, non-interactive $ optiq run vibe -m mlx-community/Qwen3.6-27B-OptiQ-4bit -- -p "read AGENTS.md and summarise the build steps" --auto-approve
Your Vibe settings are kept and the local model is made active for that session; ~/.vibe/config.toml is not edited. Use a 24B-or-larger model for agent work: in our tests a 9B model finished the file-editing task in 4 of 6 runs.
The steps below set up the same connection by hand, for when you run optiq serve yourself. See optiq run for every option.
1. Install Vibe
$ pip install mistral-vibe # or with uv: $ uv tool install mistral-vibe
2. Start optiq serve
$ optiq serve \ --model mlx-community/Qwen3.6-27B-OptiQ-4bit \ --port 8080
optiq serve accepts a request without an Authorization header, but rejects one carrying a token that is not an OptiQ key. Because Vibe always sends whatever key you configure, set it to something with the sk-optiq- prefix:
$ export OPTIQ_API_KEY=sk-optiq-local
3. Configure Vibe
Vibe reads ~/.vibe/config.toml (override the directory with VIBE_HOME). Add a provider pointing at your local server and a model that uses it:
active_model = "optiq" [[providers]] name = "optiq" api_base = "http://127.0.0.1:8080/v1" api_style = "openai" api_key_env_var = "OPTIQ_API_KEY" [[models]] alias = "optiq" name = "mlx-community/Qwen3.6-27B-OptiQ-4bit" provider = "optiq" temperature = 0.2
optiq serve hosts one model and treats the request’s model field as a label. name can therefore be any string. Keeping the repo id there just makes the config self-documenting.
Then run Vibe in your project:
# interactive: $ vibe # or one-shot, non-interactive: $ vibe -p "read AGENTS.md and summarise the build steps" --auto-approve
Using Devstral
Vibe and Devstral both come from Mistral, so they pair naturally. Point optiq serve at a Devstral build and leave the Vibe config above unchanged. The model field is just a label.
$ optiq serve \ --model mlx-community/mistralai_Devstral-Small-2-24B-Instruct-2512-MLX-MXFP4 \ --port 8080
Notes
- Tool use: works. Vibe drives file reads and edits through function calling.
- Trust prompt: Vibe ignores a project’s
AGENTS.mduntil the directory is trusted. Pass--trustfor a non-interactive run. - Streaming: works.
- Verified:
vibe 2.21.0againstoptiq serveon macOS (Apple Silicon), driving Devstral-Small-2-24B;optiq runwithvibe 2.25.4and Qwen3.5-9B.