mistral-install-auth
Install and configure the Mistral AI SDK with authentication. Use when setting up a new Mistral integration, configuring API keys, or initializing Mistral AI in your project. Trigger with phrases like "install mistral", "setup mistral", "mistral auth", "configure mistral API key".
Allowed Tools
Provided by Plugin
mistral-pack
Claude Code skill pack for Mistral AI (24 skills)
Installation
This skill is included in the mistral-pack plugin:
/plugin install mistral-pack@claude-code-plugins-plus
Click to copy
Instructions
Mistral AI Install & Auth
Overview
Set up the official Mistral AI SDK (@mistralai/mistralai for TypeScript, mistralai for Python) and configure authentication for chat completions, embeddings, function calling, vision, and agents.
Prerequisites
- Node.js 18+ or Python 3.9+
- Package manager (npm, pnpm, yarn, or pip)
- Mistral AI account at console.mistral.ai
- API key from La Plateforme (Settings > API Keys)
Instructions
Step 1: Install SDK
Node.js (TypeScript/JavaScript) — ESM only
set -euo pipefail
# npm
npm install @mistralai/mistralai
# pnpm
pnpm add @mistralai/mistralai
# yarn
yarn add @mistralai/mistralai
Python
set -euo pipefail
pip install mistralai
Step 2: Configure Authentication
Environment Variables (Recommended)
# Set in shell
export MISTRAL_API_KEY="your-api-key"
# Or create .env file (add to .gitignore!)
echo 'MISTRAL_API_KEY=your-api-key' >> .env
echo '.env' >> .gitignore
Using dotenv (Node.js)
set -euo pipefail
npm install dotenv
import 'dotenv/config';
Step 3: Verify Connection
TypeScript
import { Mistral } from '@mistralai/mistralai';
const client = new Mistral({
apiKey: process.env.MISTRAL_API_KEY,
});
async function testConnection() {
try {
const models = await client.models.list();
console.log('Connection successful! Available models:');
for (const model of models.data ?? []) {
console.log(` - ${model.id}`);
}
} catch (error: any) {
if (error.status === 401) {
console.error('Invalid API key. Check your key at console.mistral.ai');
} else {
console.error('Connection failed:', error.message);
}
}
}
testConnection();
Python
import os
from mistralai import Mistral
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
def test_connection():
try:
models = client.models.list()
print("Connection successful! Available models:")
for model in models.data:
print(f" - {model.id}")
except Exception as e:
print(f"Connection failed: {e}")
test_connection()
Step 4: Production — Secret Manager
// GCP Secret Manager (recommended for production)
import { SecretManagerServiceClient } from '@google-cloud/secret-manager';
const sm = new SecretManagerServiceClient();
async function getMistralKey(): Promise<string> {
const [version] = await sm.accessSecretVersion({
name: 'projects/my-project/secrets/mistral-api-key/versions/latest',
});
return version.payload?.data?.toString() ?? '';
}
// AWS Secrets Manager alternative
import { SecretsManager } from '@aws-sdk/client-secrets-manager';
const sm = new SecretsManager({ region: 'us-east-1' });
async function getMistralKey(): Promise<string> {
const { SecretString } = await sm.getSecretValue({
SecretId: 'mistral/api-key',
});
return SecretString!;
}
Output
- Installed SDK package (
@mistralai/mistralaiormistralai) - Environment variable or .env file with API key
- Successful connection verification listing available models
Error Handling
| Error | Cause | Solution |
|---|---|---|
401 Unauthorized |
Invalid or missing API key | Verify key at console.mistral.ai |
Module not found |
SDK not installed | Run npm install @mistralai/mistralai |
ERRREQUIREESM |
Using CommonJS require | SDK is ESM-only; use import or dynamic await import() |
| Network Error | Firewall blocking HTTPS | Ensure outbound HTTPS to api.mistral.ai is allowed |
Examples
TypeScript Client with Retry
import { Mistral } from '@mistralai/mistralai';
const client = new Mistral({
apiKey: process.env.MISTRAL_API_KEY,
timeoutMs: 30_000,
maxRetries: 3,
});
export default client;
Python Client with Retry
import os
from mistralai import Mistral
client = Mistral(
api_key=os.environ["MISTRAL_API_KEY"],
timeout_ms=30_000,
max_retries=3,
)
Validate API Key Format
function validateMistralApiKey(key: string): boolean {
// Mistral keys are typically 32-char hex strings
return /^[a-zA-Z0-9]{20,}$/.test(key);
}
Resources
- Mistral AI Documentation
- Mistral AI Console
- TypeScript SDK (client-ts)
- Python SDK (client-python)
- API Reference
Next Steps
After successful auth, proceed to mistral-hello-world for your first chat completion.