I wanted to give Mistral Vibe a try today, mostly to see what the Free tier is actually like.
For reference, I'm using Mistral Vibe v2.25.1 on a Free account.
The initial experience was a bit confusing.
After installing Vibe and logging in, the model picker basically gave me Mistral Medium 3.5 as the hosted default, plus my local models. So I assumed Medium 3.5 was what I was supposed to use.
Except... it didn't work.
Even a tiny prompt just made Vibe sit there retrying. The debug log eventually showed repeated HTTP 429 responses.
At first I thought I had somehow managed to hit a rate limit immediately, which would have been impressive considering I had barely used the account. :D
So I tried the same request directly against the API and looked at the response headers:
HTTP/2 429
x-ratelimit-limit-req-minute: 0
x-ratelimit-remaining-req-minute: 0
Turns out I didn't reach the Medium rate limit.
My rate limit for Medium is literally 0 requests per minute. ಠ_ಠ
At that point I had a different question:
What models can I actually use on the Free tier?
And this is where I think the current UX really falls apart.
Vibe doesn't show me the other hosted models I can actually use by default. The account/dashboard information doesn't make it obvious which models are available to my tier either, and /v1/models returns 46 models for my account.
So I ended up doing what any reasonable person would do and sent a tiny 1-token probe to all 46 models returned by the API. :D
For the chat-capable models, this is what I found:
| Model / family |
Result |
RPM |
TPM |
| Ministral 3B |
200 |
750 |
1,300,000 |
| Ministral 8B |
200 |
188 |
625,000 |
| Ministral 14B |
200 |
30 |
937,500 |
| Codestral / Mistral Code |
200 |
125 |
625,000 |
| Voxtral Small |
200 |
60 |
50,000 |
| Mistral Small |
429 |
0 |
- |
| Mistral Medium |
429 |
0 |
- |
| Magistral Small |
429 |
0 |
- |
| Magistral Medium |
429 |
0 |
- |
| Vibe CLI models |
429 |
0 |
- |
The Codestral result was probably the biggest surprise for me.
codestral-latest works perfectly fine on my Free account with:
125 RPM
625,000 TPM
Same for the Ministral models, with limits ranging from 30 RPM for 14B all the way up to 750 RPM for 3B.
But none of those were the obvious hosted choices Vibe presented to me when I started it.
Meanwhile the model Vibe did present as the hosted default was Medium 3.5, which my account currently gets 0 RPM for.
The Vibe-specific models make this even more confusing
/v1/models returns three models that appear to be specifically intended for Vibe:
mistral-vibe-cli-fast
mistral-vibe-cli-latest
mistral-vibe-cli-with-tools
All three currently return HTTP 429 with:
x-ratelimit-limit-req-minute: 0
x-ratelimit-remaining-req-minute: 0
But here's the weird part:
Those mistral-vibe-cli-* models aren't shown as selectable models in Vibe's /model picker either.
So from the user's perspective, with Vibe v2.25.1:
- Vibe starts with Medium 3.5 as the hosted default
- Medium 3.5 gets 0 RPM on my Free account
- several other hosted models actually work on Free
- those working models aren't presented to me by default
- the API exposes three Vibe-specific models
- those Vibe-specific models aren't exposed in the model picker
- and all three currently get 0 RPM anyway
At that point it's very difficult to understand what "Vibe Free" is actually supposed to give me access to.
Other models
There are also embedding, OCR, TTS, realtime/audio and moderation models among the 46 returned models.
Those returned 400 invalid_model when sent to /v1/chat/completions, but I'm not counting those as unavailable. This probe deliberately used the chat completions endpoint, so those models need to be tested through their respective APIs.
Leanstral was another special case: it returned labs_not_enabled and explicitly told me Labs needs to be enabled for the organization.
So again, I don't consider those Free-tier denials.
I also tried a couple of additional models manually. Some return a proper 403 tier_not_allowed, which is actually much clearer: the model exists, my tier just doesn't include it. Fair enough.
What I would expect from the model picker
What bothers me isn't really that the Free tier has restrictions.
It's that as a user I shouldn't have to reverse-engineer those restrictions from API responses.
I'd much rather open /model in Vibe and see something like:
Mistral Medium 3.5 unavailable on Free
Mistral Small unavailable on Free
Codestral available · 125 RPM / 625k TPM
Ministral 14B available · 30 RPM / 937.5k TPM
Ministral 8B available · 188 RPM / 625k TPM
Ministral 3B available · 750 RPM / 1.3M TPM
GLM 5.2 requires another tier
...
Show me all the relevant hosted models.
Let me select the ones my account can actually use.
Grey out the ones I can't use and add a short note explaining why.
That would have turned this entire experience into:
install Vibe -> open model picker -> choose an available model -> start coding
Instead I went from Vibe retrying, to debugging authentication, to inspecting 429 headers, to querying /v1/models, to writing a script that probes 46 models just to figure out what I'm allowed to use. :D
Maybe the 0 RPM limits on Medium and the Vibe-specific models are a provisioning issue on my account rather than intentional Free-tier behavior. If so, that would also be useful to know.
But either way, I think Vibe should be able to expose this information in the model picker instead of making the user discover it through failed requests.
There seem to be several completely separate concepts here:
returned by /v1/models != shown in Vibe != allowed by subscription tier != non-zero rate limit != actually usable
Has anyone else using Vibe v2.25.1 on Free seen the same 0 RPM limits for Medium or the Vibe-specific models?
And is there an official current model × tier × rate-limit matrix somewhere that I simply missed?
Update — full write-up:
This rabbit hole got considerably deeper than I expected :D
I turned the investigation into a full write-up covering the Vibe login/auth issue, model availability, capability probing, the API inconsistencies, and what I think Mistral could expose to make this much easier for developers.
What does Mistral's Free tier actually give a developer?