Claude-code-plugins mistral-install-auth
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/mistral-pack/skills/mistral-install-auth" ~/.claude/skills/jeremylongshore-claude-code-plugins-mistral-install-auth && rm -rf "$T"
manifest:
plugins/saas-packs/mistral-pack/skills/mistral-install-auth/SKILL.mdsource content
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 (
or@mistralai/mistralai
)mistralai - Environment variable or .env file with API key
- Successful connection verification listing available models
Error Handling
| Error | Cause | Solution |
|---|---|---|
| Invalid or missing API key | Verify key at console.mistral.ai |
| SDK not installed | Run |
| Using CommonJS require | SDK is ESM-only; use or dynamic |
| Network Error | Firewall blocking HTTPS | Ensure outbound HTTPS to 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.