Mistral Codestral
Mistral Codestral is Mistral's first dedicated code generation model, trained on 80+ programming languages with a context window of 128K tokens and fill-in-the-middle (FIM) support for in-context code completion.
View API reference- Input and output price
- Input $0.30, Output $0.90, Per 1M tokens
- 24h uptime
- Loading AI Gateway uptime
import { streamText } from 'ai'
const result = streamText({ model: 'mistral/codestral', prompt: 'Why is the sky blue?'})Copy link to headingPlayground
Try out Mistral Codestral by Mistral. Usage is billed to your team at API rates. Free users (those who haven't made a payment) get $5 of credits every 30 days.
Mistral Codestral
Copy link to headingProviders
Route requests across multiple providers. Copy a provider slug to set your preference. Visit the docs for more info. Using a provider means you agree to their terms, listed under Legal.
| Provider |
|---|
Copy link to headingUptime24 hours
Direct request success rate on AI Gateway and per-provider. Visit the docs for more info.
Copy link to headingThroughput24 hours
P50 throughput on live AI Gateway traffic, in tokens per second (TPS). Visit the docs for more info.
Copy link to headingLatency24 hours
P50 time to first token (TTFT) on live AI Gateway traffic, in milliseconds. View the docs for more info.
Getting started
Call Mistral Codestral through AI Gateway with the AI SDK generateText and streamText functions, or through the OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages APIs by changing the base URL. AI Gateway authenticates the request and routes it to an available provider.
Install the AI SDK (pnpm add ai dotenv), create an API key from the API Keys page, and set it as AI_GATEWAY_API_KEY in your environment. Full setup is covered in the text generation quickstart.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'mistral/codestral', prompt: 'Why is the sky blue?', });
console.log(result.text);}
main().catch(console.error);Top-level parameters
The same Mistral Codestral request in each API format AI Gateway supports.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'mistral/codestral', system: 'You are a concise technical assistant.', prompt: 'Summarize the tradeoffs between static generation and SSR.', maxOutputTokens: 1024, temperature: 0.5, });
console.log(result.text);}
main().catch(console.error);Standard parameters like prompt, messages, temperature, and tools work as documented in the AI SDK docs. These are the parameters with model-specific behavior.
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model ID in the form creator/model, e.g. mistral/codestral. AI Gateway routes the request to an available provider. |
maxOutputTokens | number | No | Hard cap on generated tokens. Mistral Codestral supports up to 4,000 output tokens. |
providerOptions | Record<string, JSONValue> | No | AI Gateway routing options under gateway, plus any provider-native options under the provider’s own namespace — see the table below. |
Input limits
| Input | Formats | Sources | Max count | Max size | Limits |
|---|---|---|---|---|---|
| Text | — | — | — | — | Prompt and response share the 128K-token context window |
Provider options
Set AI Gateway routing options under providerOptions.gateway. For provider-specific options, pass them under the provider’s namespace as documented by the AI SDK.
Learn more in the AI SDK mistral provider docs.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'mistral/codestral', prompt: 'Why is the sky blue?', providerOptions: { gateway: { only: ['mistral'], }, }, });
console.log(result.text);}
main().catch(console.error);These AI Gateway routing options apply to every model. Provider-specific options pass through under the provider’s own namespace (for example providerOptions.anthropic) exactly as documented by the AI SDK.
| Parameter | Type | Required | Description |
|---|---|---|---|
providerOptions.gateway.only | string[] | No | Restrict routing to these provider slugs. Requests fail over only within the listed providers. |
providerOptions.gateway.order | string[] | No | Preferred provider order. Listed providers are tried first; unlisted providers remain available as fallbacks. |
providerOptions.gateway.sort | 'cost' | 'ttft' | 'tps' | No | Rank candidate providers by price, time to first token, or tokens per second instead of the default routing order. |
providerOptions.gateway.zeroDataRetention | boolean | No | Route only to providers with a zero-data-retention policy for this model. |
Routing across providers
AI Gateway serves the same model through multiple providers and fails over automatically. order expresses a preference while keeping every provider eligible; only is a hard allowlist — if none of the listed providers are available the request fails instead of falling back.
Options under a provider's own namespace (for example providerOptions.anthropic) are forwarded to that provider with the request. Providers ignore option namespaces that don't apply to them, so it is safe to set provider options alongside gateway routing options.
Tool calling
Expose tools the model can call. Define each tool’s inputs with a Zod schema.
import { generateText, tool } from 'ai';import { z } from 'zod';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'mistral/codestral', prompt: 'What is the weather in San Francisco?', tools: { getWeather: tool({ description: 'Get the current weather for a location', inputSchema: z.object({ location: z.string() }), execute: async ({ location }) => ({ location, temperatureC: 18 }), }), }, });
console.log(result.text);}
main().catch(console.error);Copy link to headingAbout Mistral Codestral
Announced May 29, 2024, Mistral Codestral was the first model Mistral dedicated entirely to code. With 22 billion parameters and training across more than 80 programming languages, including Python, Java, C, C++, JavaScript, Bash, Swift, and Fortran, Mistral Codestral covers the breadth of languages developers encounter in production.
Mistral Codestral's defining technical feature is fill-in-the-middle (FIM) support. Unlike instruction-only models that generate code from a prompt, FIM lets Mistral Codestral complete code within a partial snippet. Mistral Codestral can insert a function body, finish a conditional branch, or complete a class method given the surrounding context. This makes Mistral Codestral a natural fit for IDE integrations like Continue.dev and Tabnine, where code above and below the cursor is provided as context.
Beyond completion, Mistral Codestral handles test generation and documentation authoring. Its context window of 128K tokens was over four times larger than those of competing models at launch, so Mistral Codestral can process full files rather than truncated snippets.
Copy link to headingWhat To Consider When Choosing a Provider
- Configuration: Mistral Codestral's context window of 128K tokens was over four times larger than the 4K to 16K windows typical of competing code models at release. You can reason over entire files or multi-file snippets in a single request.
- Zero Data Retention: Zero Data Retention is available for this model. It is offered on a per-provider and model basis. See the documentation for details.
- Authentication: AI Gateway authenticates requests using an API key or OIDC token. You do not need to manage provider credentials directly.
Copy link to headingWhen to Use Mistral Codestral
Best for
- IDE and editor plugins: Requiring fill-in-the-middle code completion
- Automated test generation: Producing unit or integration tests from existing source code
- Documentation generation: Writing inline docs and reference material for functions, classes, and modules
- Code translation between languages: Converting source across languages, for example Python to TypeScript
- Broad language coverage: Applications that need wide support in a single model
Consider alternatives when
- Agentic software engineering: You need multi-file orchestration (consider Devstral)
- Semantic code search: Your primary requirement is search rather than generation (consider Codestral Embed)
- Reasoning-heavy problem solving: You need deep reasoning alongside coding (consider Magistral)
Copy link to headingConclusion
Mistral Codestral established Mistral's footprint in developer tooling when it launched. Mistral Codestral remains relevant for teams that need broad language coverage, fill-in-the-middle completion, and a context window of 128K tokens optimized for code. Mistral's coding model family builds on this foundation.
Copy link to headingFrequently Asked Questions
What is fill-in-the-middle (FIM) and how does Mistral Codestral use it?
FIM allows Mistral Codestral to complete code given both a prefix (code before the cursor) and a suffix (code after the cursor). Mistral Codestral uses this to insert completions inside partial functions or expressions, which is the dominant pattern in IDE plugins.
How many programming languages does Mistral Codestral support?
Mistral Codestral was trained on over 80 programming languages. Benchmarked languages include Python, C++, Bash, Java, PHP, TypeScript, C#, SQL, Swift, and Fortran.
What is Mistral Codestral's context window?
128K tokens. At launch this was over four times larger than the 4K to 16K windows typical of competing code models.
Can Mistral Codestral write unit tests?
Yes. Test generation is an explicit use case in Mistral's documentation for Mistral Codestral alongside code completion and documentation authoring.
Is Mistral Codestral available as an open-weight model?
Yes. Weights are available on HuggingFace under the Mistral Non-Production License (MNPL). Commercial API access is available through La Plateforme and AI Gateway.
How does Mistral Codestral integrate with IDEs?
Mistral Codestral integrates with Continue.dev and Tabnine plugins for VS Code and JetBrains, using the FIM API for in-editor completions.
How is Mistral Codestral different from Devstral?
Mistral Codestral is a code generation and completion model focused on individual file-level tasks. Devstral is an agentic model designed to navigate entire codebases, resolve GitHub issues, and orchestrate multi-file changes autonomously.