chore(docs): i18n sync (#15417)

This commit is contained in:
Adam
2026-02-28 15:27:11 -06:00
committed by GitHub
parent 971bd30516
commit e1e18c7abd
174 changed files with 6358 additions and 4392 deletions

View File

@@ -558,6 +558,7 @@ OpenCode peut être configuré à l'aide de variables d'environnement.
| `OPENCODE_AUTO_SHARE` | booléen | Partager automatiquement des sessions |
| `OPENCODE_GIT_BASH_PATH` | chaîne | Chemin vers l'exécutable Git Bash sur Windows |
| `OPENCODE_CONFIG` | chaîne | Chemin d'accès au fichier de configuration |
| `OPENCODE_TUI_CONFIG` | chaîne | Chemin d'accès au fichier de configuration TUI |
| `OPENCODE_CONFIG_DIR` | chaîne | Chemin d'accès au répertoire de configuration |
| `OPENCODE_CONFIG_CONTENT` | chaîne | Contenu de configuration JSON en ligne |
| `OPENCODE_DISABLE_AUTOUPDATE` | booléen | Désactiver les vérifications automatiques des mises à jour |

View File

@@ -14,10 +14,11 @@ OpenCode prend en charge les formats **JSON** et **JSONC** (JSON avec commentair
```jsonc title="opencode.jsonc"
{
"$schema": "https://opencode.ai/config.json",
// Theme configuration
"theme": "opencode",
"model": "anthropic/claude-sonnet-4-5",
"autoupdate": true,
"server": {
"port": 4096,
},
}
```
@@ -34,7 +35,7 @@ Les fichiers de configuration sont **fusionnés**, pas remplacés.
Les fichiers de configuration sont fusionnés et non remplacés. Les paramètres des emplacements de configuration suivants sont combinés. Les configurations ultérieures remplacent les précédentes uniquement en cas de clés en conflit. Les paramètres non conflictuels de toutes les configurations sont conservés.
Par exemple, si votre configuration globale définit `theme: "opencode"` et `autoupdate: true` et que la configuration de votre projet définit `model: "anthropic/claude-sonnet-4-5"`, la configuration finale inclura les trois paramètres.
Par exemple, si votre configuration globale définit `autoupdate: true` et que la configuration de votre projet définit `model: "anthropic/claude-sonnet-4-5"`, la configuration finale inclura les deux paramètres.
---
@@ -95,7 +96,9 @@ Vous pouvez activer des serveurs spécifiques dans votre configuration locale :
### Globale
Placez votre configuration globale OpenCode dans `~/.config/opencode/opencode.json`. Utilisez la configuration globale pour les préférences de l'utilisateur telles que les thèmes, les fournisseurs ou les raccourcis clavier.
Placez votre configuration globale OpenCode dans `~/.config/opencode/opencode.json`. Utilisez la configuration globale pour les préférences de l'utilisateur telles que les fournisseurs, les modèles et les autorisations.
Pour les paramètres spécifiques à TUI, utilisez `~/.config/opencode/tui.json`.
La configuration globale remplace les paramètres par défaut de l'organisation distante.
@@ -105,6 +108,8 @@ La configuration globale remplace les paramètres par défaut de l'organisation
Ajoutez `opencode.json` à la racine de votre projet. La configuration du projet a la priorité la plus élevée parmi les fichiers de configuration standard : elle remplace les configurations globales et distantes.
Pour les paramètres TUI spécifiques au projet, ajoutez `tui.json` à côté.
:::tip
Placez la configuration spécifique au projet à la racine de votre projet.
:::
@@ -145,34 +150,32 @@ Le répertoire personnalisé est chargé après les répertoires de configuratio
Le fichier de configuration a un schéma défini dans [**`opencode.ai/config.json`**](https://opencode.ai/config.json).
La configuration TUI utilise [**`opencode.ai/tui.json`**](https://opencode.ai/tui.json).
Votre éditeur doit être capable de valider et de compléter automatiquement en fonction du schéma.
---
### TUI
Vous pouvez configurer les paramètres spécifiques à TUI via l'option `tui`.
Utilisez un fichier dédié `tui.json` (ou `tui.jsonc`) pour les paramètres spécifiques à TUI.
```json title="opencode.json"
```json title="tui.json"
{
"$schema": "https://opencode.ai/config.json",
"tui": {
"scroll_speed": 3,
"scroll_acceleration": {
"enabled": true
},
"diff_style": "auto"
}
"$schema": "https://opencode.ai/tui.json",
"scroll_speed": 3,
"scroll_acceleration": {
"enabled": true
},
"diff_style": "auto"
}
```
Options disponibles :
Utilisez `OPENCODE_TUI_CONFIG` pour pointer vers un fichier de configuration TUI personnalisé.
- `scroll_acceleration.enabled` - Active l'accélération de défilement de style macOS. **A priorité sur `scroll_speed`.**
- `scroll_speed` - Multiplicateur de vitesse de défilement personnalisé (par défaut : `3`, minimum : `1`). Ignoré si `scroll_acceleration.enabled` est `true`.
- `diff_style` - Contrôle le rendu différentiel. `"auto"` s'adapte à la largeur du terminal, `"stacked"` affiche toujours une seule colonne.
Les anciennes clés `theme`, `keybinds` et `tui` dans `opencode.json` sont obsolètes et migrées automatiquement lorsque cela est possible.
[En savoir plus sur l'utilisation du TUI ici](/docs/tui).
[En savoir plus sur l'utilisation du TUI ici](/docs/tui#configure).
---
@@ -298,12 +301,12 @@ Les jetons du porteur (`AWS_BEARER_TOKEN_BEDROCK` ou `/connect`) ont priorité s
### Thèmes
Vous pouvez configurer le thème que vous souhaitez utiliser dans votre configuration OpenCode via l'option `theme`.
Définissez votre thème d'interface utilisateur dans `tui.json`.
```json title="opencode.json"
```json title="tui.json"
{
"$schema": "https://opencode.ai/config.json",
"theme": ""
"$schema": "https://opencode.ai/tui.json",
"theme": "tokyonight"
}
```
@@ -403,11 +406,11 @@ Vous pouvez également définir des commandes à l'aide de fichiers markdown dan
### Raccourcis clavier
Vous pouvez personnaliser vos raccourcis clavier via l'option `keybinds`.
Personnalisez les raccourcis clavier dans `tui.json`.
```json title="opencode.json"
```json title="tui.json"
{
"$schema": "https://opencode.ai/config.json",
"$schema": "https://opencode.ai/tui.json",
"keybinds": {}
}
```
@@ -487,13 +490,15 @@ Vous pouvez contrôler le comportement de compactage du contexte via l'option `c
"$schema": "https://opencode.ai/config.json",
"compaction": {
"auto": true,
"prune": true
"prune": true,
"reserved": 10000
}
}
```
- `auto` - Compacte automatiquement la session lorsque le contexte est plein (par défaut : `true`).
- `prune` - Supprimez les anciennes sorties de l'outil pour économiser des tokens (par défaut : `true`).
- `reserved` - Tampon de jetons pour le compactage. Laisse suffisamment de marge pour éviter le débordement lors du compactage.
---

View File

@@ -27,6 +27,7 @@ OpenCode est livré avec plusieurs serveurs LSP intégrés pour les langages pop
| gopls | .go | Commande `go` disponible |
| hls | .hs, .lhs | Commande `haskell-language-server-wrapper` disponible |
| jdtls | .java | `Java SDK (version 21+)` installé |
| julials | .jl | `julia` et `LanguageServer.jl` installés |
| kotlin-ls | .kt, .kts | Installation automatique pour les projets Kotlin |
| lua-ls | .lua | Installation automatique pour les projets Lua |
| nixd | .nix | Commande `nixd` disponible |

View File

@@ -375,9 +375,9 @@ Si vous disposez d'un grand nombre de serveurs MCP, vous souhaiterez peut-être
---
#### Patterns glob
#### Modèles globaux
Le pattern glob utilise des modèles de globbing regex simples :
Le modèle glob utilise des modèles de globbing regex simples :
- `*` correspond à zéro ou plusieurs caractères (par exemple, `"my-mcp*"` correspond à `my-mcp_search`, `my-mcp_list`, etc.)
- `?` correspond exactement à un caractère
@@ -509,473 +509,3 @@ Alternativement, vous pouvez ajouter quelque chose comme ceci à votre [AGENTS.m
```md title="AGENTS.md"
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.
```
Vous pouvez également désactiver un serveur en définissant `enabled` sur `false`. Ceci est utile si vous souhaitez désactiver temporairement un serveur sans le supprimer de votre configuration.
---
### Remplacement des valeurs par défaut distantes
Les organisations peuvent fournir des serveurs MCP par défaut via leur point de terminaison `.well-known/opencode`. Ces serveurs peuvent être désactivés par défaut, permettant aux utilisateurs de choisir ceux dont ils ont besoin.
Pour activer un serveur spécifique à partir de la configuration distante de votre organisation, ajoutez-le à votre configuration locale avec `enabled: true` :
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jira": {
"type": "remote",
"url": "https://jira.example.com/mcp",
"enabled": true
}
}
}
```
Vos valeurs de configuration locales remplacent les valeurs par défaut distantes. Voir [config precedence](/docs/config#precedence-order) pour plus de détails.
---
## Local
Ajoutez des serveurs MCP locaux en utilisant `type` à `"local"` dans l'objet MCP.
```jsonc title="opencode.jsonc" {15}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-local-mcp-server": {
"type": "local",
// Or ["bun", "x", "my-mcp-command"]
"command": ["npx", "-y", "my-mcp-command"],
"enabled": true,
"environment": {
"MY_ENV_VAR": "my_env_var_value",
},
},
},
}
```
La commande indique comment le serveur MCP local est démarré. Vous pouvez également transmettre une liste de variables denvironnement.
Par exemple, voici comment ajouter le serveur de test [`@modelcontextprotocol/server-everything`](https://www.npmjs.com/package/@modelcontextprotocol/server-everything) MCP.
```jsonc title="opencode.jsonc"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mcp_everything": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
},
},
}
```
Et pour l'utiliser, je peux ajouter `use the mcp_everything tool` à mes invites.
```txt "mcp_everything"
use the mcp_everything tool to add the number 3 and 4
```
---
#### Options
Voici toutes les options pour configurer un serveur MCP local.
| Options | Tapez | Obligatoire | Descriptif |
| ------------- | ------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `type` | Chaîne | Oui | Le type de connexion au serveur MCP doit être `"local"`. |
| `command` | Tableau | Oui | Commande et arguments pour exécuter le serveur MCP. |
| `environment` | Objet | | Variables d'environnement à définir lors de l'exécution du serveur. |
| `enabled` | Booléen | | Activez ou désactivez le serveur MCP au démarrage. |
| `timeout` | Numéro | | Délai d'expiration en ms pour la récupération des outils depuis le serveur MCP. La valeur par défaut est 5 000 (5 secondes). |
---
## Remote
Ajoutez des serveurs MCP distants en définissant `type` sur `"remote"`.
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-remote-mcp": {
"type": "remote",
"url": "https://my-mcp-server.com",
"enabled": true,
"headers": {
"Authorization": "Bearer MY_API_KEY"
}
}
}
}
```
Le champ `url` est l'URL du serveur MCP distant et l'option `headers` vous permet de transmettre des en-têtes.
---
#### Options
| Options | Tapez | Obligatoire | Descriptif |
| --------- | ------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `type` | Chaîne | Oui | Le type de connexion au serveur MCP doit être `"remote"`. |
| `url` | Chaîne | Oui | URL du serveur MCP distant. |
| `enabled` | Booléen | | Activez ou désactivez le serveur MCP au démarrage. |
| `headers` | Objet | | En-têtes à envoyer avec la demande. |
| `oauth` | Objet | | Configuration de l'authentification OAuth. Voir la section [OAuth](#oauth) ci-dessous. |
| `timeout` | Numéro | | Délai d'expiration en ms pour la récupération des outils depuis le serveur MCP. La valeur par défaut est 5 000 (5 secondes). |
---
## OAuth
OpenCode gère automatiquement l'authentification OAuth pour les serveurs MCP distants. Lorsqu'un serveur nécessite une authentification, OpenCode :
1. Détectez la réponse 401 et lancez le flux OAuth
2. Utilisez **Enregistrement client dynamique (RFC 7591)** s'il est pris en charge par le serveur.
3. Stockez les jetons en toute sécurité pour les demandes futures
---
### Automatique
Pour la plupart des serveurs MCP compatibles OAuth, aucune configuration particulière n'est nécessaire. Configurez simplement le serveur distant :
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp"
}
}
}
```
Si le serveur nécessite une authentification, OpenCode vous demandera de vous authentifier lorsque vous essayez de l'utiliser pour la première fois. Sinon, vous pouvez [déclencher manuellement le flux](#authenticating) avec `opencode mcp auth <server-name>`.
---
### Pré-inscrit
Si vous disposez des informations d'identification client du fournisseur de serveur MCP, vous pouvez les configurer :
```json title="opencode.json" {7-11}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp",
"oauth": {
"clientId": "{env:MY_MCP_CLIENT_ID}",
"clientSecret": "{env:MY_MCP_CLIENT_SECRET}",
"scope": "tools:read tools:execute"
}
}
}
}
```
---
### Authentification
Vous pouvez déclencher manuellement l'authentification ou gérer les informations d'identification.
Authentifiez-vous auprès d'un serveur MCP spécifique :
```bash
opencode mcp auth my-oauth-server
```
Répertoriez tous les serveurs MCP et leur statut d'authentification :
```bash
opencode mcp list
```
Supprimez les informations d'identification stockées :
```bash
opencode mcp logout my-oauth-server
```
La commande `mcp auth` ouvrira votre navigateur pour autorisation. Après votre autorisation, OpenCode stockera les jetons en toute sécurité dans `~/.local/share/opencode/mcp-auth.json`.
---
#### Désactivation de OAuth
Si vous souhaitez désactiver le OAuth automatique pour un serveur (par exemple, pour les serveurs qui utilisent les clés API à la place), définissez `oauth` sur `false` :
```json title="opencode.json" {7}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-api-key-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp",
"oauth": false,
"headers": {
"Authorization": "Bearer {env:MY_API_KEY}"
}
}
}
}
```
---
#### Options OAuth
| Options | Tapez | Descriptif |
| -------------- | ------------- | ---------------------------------------------------------------------------------------- |
| `oauth` | Objet \| faux | Objet de configuration OAuth, ou `false` pour désactiver la détection automatique OAuth. |
| `clientId` | Chaîne | ID client OAuth. Sil nest pas fourni, lenregistrement dynamique du client sera tenté. |
| `clientSecret` | Chaîne | OAuth secret client, si requis par le serveur d'autorisation. |
| `scope` | Chaîne | OAuth scopes à demander lors de l'autorisation. |
#### Débogage
Si un serveur MCP distant ne parvient pas à s'authentifier, vous pouvez diagnostiquer les problèmes avec :
```bash
# View auth status for all OAuth-capable servers
opencode mcp auth list
# Debug connection and OAuth flow for a specific server
opencode mcp debug my-oauth-server
```
La commande `mcp debug` affiche l'état d'authentification actuel, teste la connectivité HTTP et tente le flux de découverte OAuth.
---
## Gérer
Vos MCP sont disponibles sous forme d'outils dans OpenCode, aux côtés des outils intégrés. Vous pouvez donc les gérer via la configuration OpenCode comme n'importe quel autre outil.
---
### Global
Cela signifie que vous pouvez les activer ou les désactiver globalement.
```json title="opencode.json" {14}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-mcp-foo": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-foo"]
},
"my-mcp-bar": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-bar"]
}
},
"tools": {
"my-mcp-foo": false
}
}
```
Nous pouvons également utiliser un modèle global pour désactiver tous les MCP correspondants.
```json title="opencode.json" {14}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-mcp-foo": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-foo"]
},
"my-mcp-bar": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-bar"]
}
},
"tools": {
"my-mcp*": false
}
}
```
Ici, nous utilisons le modèle global `my-mcp*` pour désactiver tous les MCP.
---
### Par agent
Si vous disposez d'un grand nombre de serveurs MCP, vous souhaiterez peut-être les activer uniquement par agent et les désactiver globalement. Pour ce faire :
1. Désactivez-le en tant qu'outil à l'échelle mondiale.
2. Dans votre [agent config](/docs/agents#tools), activez le serveur MCP en tant qu'outil.
```json title="opencode.json" {11, 14-18}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-mcp": {
"type": "local",
"command": ["bun", "x", "my-mcp-command"],
"enabled": true
}
},
"tools": {
"my-mcp*": false
},
"agent": {
"my-agent": {
"tools": {
"my-mcp*": true
}
}
}
}
```
---
#### Modèles globaux
Le modèle glob utilise des modèles de globbing regex simples :
- `*` correspond à zéro ou plusieurs caractères (par exemple, `"my-mcp*"` correspond à `my-mcp_search`, `my-mcp_list`, etc.)
- `?` correspond exactement à un caractère
- Tous les autres caractères correspondent littéralement
:::note
Les outils serveur MCP sont enregistrés avec le nom du serveur comme préfixe, donc pour désactiver tous les outils d'un serveur, utilisez simplement :
```
"mymcpservername_*": false
```
:::
---
## Exemples
Vous trouverez ci-dessous des exemples de serveurs MCP courants. Vous pouvez soumettre un PR si vous souhaitez documenter d'autres serveurs.
---
### Sentry
Ajoutez le [serveur Sentry MCP](https://mcp.sentry.dev) pour interagir avec vos projets et problèmes Sentry.
```json title="opencode.json" {4-8}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sentry": {
"type": "remote",
"url": "https://mcp.sentry.dev/mcp",
"oauth": {}
}
}
}
```
Après avoir ajouté la configuration, authentifiez-vous auprès de Sentry :
```bash
opencode mcp auth sentry
```
Cela ouvrira une fenêtre de navigateur pour terminer le flux OAuth et connecter OpenCode à votre compte Sentry.
Une fois authentifié, vous pouvez utiliser les outils Sentry dans vos invites pour interroger les problèmes, les projets et les données d'erreur.
```txt "use sentry"
Show me the latest unresolved issues in my project. use sentry
```
---
### Contexte7
Ajoutez le [Context7 MCP server](https://github.com/upstash/context7) pour effectuer une recherche dans les documents.
```json title="opencode.json" {4-7}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp"
}
}
}
```
Si vous avez créé un compte gratuit, vous pouvez utiliser votre clé API et obtenir des limites de débit plus élevées.
```json title="opencode.json" {7-9}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
}
}
}
}
```
Ici, nous supposons que la variable d'environnement `CONTEXT7_API_KEY` est définie.
Ajoutez `use context7` à vos invites pour utiliser le serveur Context7 MCP.
```txt "use context7"
Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7
```
Alternativement, vous pouvez ajouter quelque chose comme ceci à votre [AGENTS.md](/docs/rules/).
```md title="AGENTS.md"
When you need to search docs, use `context7` tools.
```
---
### Grep by Vercel
Ajoutez le serveur [Grep by Vercel](https://grep.app) MCP pour rechercher des extraits de code sur GitHub.
```json title="opencode.json" {4-7}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"gh_grep": {
"type": "remote",
"url": "https://mcp.grep.app"
}
}
}
```
Puisque nous avons nommé notre serveur MCP `gh_grep`, vous pouvez ajouter `use the gh_grep tool` à vos invites pour que l'agent l'utilise.
```txt "use the gh_grep tool"
What's the right way to set a custom domain in an SST Astro component? use the gh_grep tool
```
Alternativement, vous pouvez ajouter quelque chose comme ceci à votre [AGENTS.md](/docs/rules/).
```md title="AGENTS.md"
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.
```

View File

@@ -84,6 +84,38 @@ Il fonctionne comme nimporte quel autre fournisseur dans OpenCode et son util
---
## OpenCode Go
OpenCode Go est un plan d'abonnement à faible coût qui offre un accès fiable aux modèles de codage ouverts populaires fournis par l'équipe OpenCode qui ont été
testé et vérifié pour fonctionner correctement avec OpenCode.
1. Exécutez la commande `/connect` dans le TUI, sélectionnez `OpenCode Go` et rendez-vous sur [opencode.ai/auth](https://opencode.ai/zen).
```txt
/connect
```
2. Connectez-vous, ajoutez vos informations de facturation et copiez votre clé API.
3. Collez votre clé API.
```txt
┌ API key
└ enter
```
4. Exécutez `/models` dans le TUI pour voir la liste des modèles que nous recommandons.
```txt
/models
```
Il fonctionne comme nimporte quel autre fournisseur dans OpenCode et son utilisation est totalement facultative.
---
## Annuaire
Examinons certains fournisseurs en détail. Si vous souhaitez ajouter un fournisseur au
@@ -1487,6 +1519,39 @@ Ou ajoutez-le à votre profil bash :
---
### STACKIT
STACKIT AI Model Serving fournit un environnement d'hébergement souverain entièrement géré pour les modèles d'IA, se concentrant sur les LLM comme Llama, Mistral et Qwen, avec une souveraineté maximale des données sur l'infrastructure européenne.
1. Rendez-vous sur le [portail STACKIT](https://portal.stackit.cloud), accédez à **AI Model Serving** et créez un jeton d'authentification pour votre projet.
:::tip
Vous avez besoin d'un compte client STACKIT, d'un compte utilisateur et d'un projet avant de créer des jetons d'authentification.
:::
2. Exécutez la commande `/connect` et recherchez **STACKIT**.
```txt
/connect
```
3. Entrez votre jeton d'authentification STACKIT AI Model Serving.
```txt
┌ API key
└ enter
```
4. Exécutez la commande `/models` pour sélectionner parmi les modèles disponibles tels que _Qwen3-VL 235B_ ou _Llama 3.3 70B_.
```txt
/models
```
---
### OVHcloud AI Endpoints
1. Rendez-vous sur le [Panneau OVHcloud](https://ovh.com/manager). Accédez à la section `Public Cloud`, `AI & Machine Learning` > `AI Endpoints` et dans l'onglet `API Keys`, cliquez sur **Créer une nouvelle clé API**.

View File

@@ -117,6 +117,78 @@ try {
---
## Sortie structurée
Vous pouvez demander une sortie JSON structurée au modèle en spécifiant un `format` avec un schéma JSON. Le modèle utilisera un outil `StructuredOutput` pour renvoyer un JSON validé correspondant à votre schéma.
### Utilisation de base
```typescript
const result = await client.session.prompt({
path: { id: sessionId },
body: {
parts: [{ type: "text", text: "Research Anthropic and provide company info" }],
format: {
type: "json_schema",
schema: {
type: "object",
properties: {
company: { type: "string", description: "Company name" },
founded: { type: "number", description: "Year founded" },
products: {
type: "array",
items: { type: "string" },
description: "Main products",
},
},
required: ["company", "founded"],
},
},
},
})
// Access the structured output
console.log(result.data.info.structured_output)
// { company: "Anthropic", founded: 2021, products: ["Claude", "Claude API"] }
```
### Types de format de sortie
| Type | Description |
| ------------- | ----------------------------------------------------------------- |
| `text` | Par défaut. Réponse textuelle standard (pas de sortie structurée) |
| `json_schema` | Renvoie un JSON validé correspondant au schéma fourni |
### Format de schéma JSON
Lors de l'utilisation de `type: 'json_schema'`, fournissez :
| Champ | Type | Description |
| ------------ | --------------- | --------------------------------------------------------------- |
| `type` | `'json_schema'` | Requis. Spécifie le mode de schéma JSON |
| `schema` | `object` | Requis. Objet JSON Schema définissant la structure de sortie |
| `retryCount` | `number` | Facultatif. Nombre de tentatives de validation (par défaut : 2) |
### Gestion des erreurs
Si le modèle ne parvient pas à produire une sortie structurée valide après toutes les tentatives, la réponse inclura une `StructuredOutputError` :
```typescript
if (result.data.info.error?.name === "StructuredOutputError") {
console.error("Failed to produce structured output:", result.data.info.error.message)
console.error("Attempts:", result.data.info.error.retries)
}
```
### Bonnes pratiques
1. **Fournissez des descriptions claires** dans les propriétés de votre schéma pour aider le modèle à comprendre quelles données extraire
2. **Utilisez `required`** pour spécifier quels champs doivent être présents
3. **Gardez les schémas ciblés** - les schémas imbriqués complexes peuvent être plus difficiles à remplir correctement pour le modèle
4. **Définissez un `retryCount` approprié** - augmentez-le pour les schémas complexes, diminuez-le pour les simples
---
## APIs
Le SDK expose toutes les API du serveur via un client de type sécurisé.
@@ -226,27 +298,27 @@ const { providers, default: defaults } = await client.config.providers()
### Séances
| Méthode | Descriptif | Remarques |
| ---------------------------------------------------------- | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `session.list()` | Liste des séances | Renvoie <a href={typesUrl}><code>Session[]</code></a> |
| `session.get({ path })` | Obtenir une session | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `session.children({ path })` | Liste des sessions enfants | Renvoie <a href={typesUrl}><code>Session[]</code></a> |
| `session.create({ body })` | Créer une séance | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `session.delete({ path })` | Supprimer la séance | Renvoie `boolean` |
| `session.update({ path, body })` | Mettre à jour les propriétés de la session | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `session.init({ path, body })` | Analysez l'application et créez `AGENTS.md` | Renvoie `boolean` |
| `session.abort({ path })` | Abandonner une session en cours | Renvoie `boolean` |
| `session.share({ path })` | Séance de partage | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `session.unshare({ path })` | Annuler le partage de la session | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `session.summarize({ path, body })` | Résumer la séance | Renvoie `boolean` |
| `session.messages({ path })` | Liste des messages dans une session | Renvoie `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}[]` |
| `session.message({ path })` | Obtenir les détails du message | Renvoie `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.prompt({ path, body })` | Envoyer un message d'invite | `body.noReply: true` renvoie UserMessage (contexte uniquement). La valeur par défaut renvoie <a href={typesUrl}><code>AssistantMessage</code></a> avec réponse IA |
| `session.command({ path, body })` | Envoyer la commande à la session | Renvoie `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.shell({ path, body })` | Exécuter une commande shell | Renvoie <a href={typesUrl}><code>AssistantMessage</code></a> |
| `session.revert({ path, body })` | Rétablir un message | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `session.unrevert({ path })` | Restaurer les messages annulés | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `postSessionByIdPermissionsByPermissionId({ path, body })` | Répondre à une demande d'autorisation | Renvoie `boolean` |
| Méthode | Descriptif | Remarques |
| ---------------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `session.list()` | Liste des séances | Renvoie <a href={typesUrl}><code>Session[]</code></a> |
| `session.get({ path })` | Obtenir une session | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `session.children({ path })` | Liste des sessions enfants | Renvoie <a href={typesUrl}><code>Session[]</code></a> |
| `session.create({ body })` | Créer une séance | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `session.delete({ path })` | Supprimer la séance | Renvoie `boolean` |
| `session.update({ path, body })` | Mettre à jour les propriétés de la session | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `session.init({ path, body })` | Analysez l'application et créez `AGENTS.md` | Renvoie `boolean` |
| `session.abort({ path })` | Abandonner une session en cours | Renvoie `boolean` |
| `session.share({ path })` | Séance de partage | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `session.unshare({ path })` | Annuler le partage de la session | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `session.summarize({ path, body })` | Résumer la séance | Renvoie `boolean` |
| `session.messages({ path })` | Liste des messages dans une session | Renvoie `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}[]` |
| `session.message({ path })` | Obtenir les détails du message | Renvoie `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.prompt({ path, body })` | Envoyer un message d'invite | `body.noReply: true` renvoie UserMessage (contexte uniquement). La valeur par défaut renvoie <a href={typesUrl}><code>AssistantMessage</code></a> avec réponse IA. Prend en charge `body.outputFormat` pour [sortie structurée](#structured-output) |
| `session.command({ path, body })` | Envoyer la commande à la session | Renvoie `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.shell({ path, body })` | Exécuter une commande shell | Renvoie <a href={typesUrl}><code>AssistantMessage</code></a> |
| `session.revert({ path, body })` | Rétablir un message | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `session.unrevert({ path })` | Restaurer les messages annulés | Renvoie <a href={typesUrl}><code>Session</code></a> |
| `postSessionByIdPermissionsByPermissionId({ path, body })` | Répondre à une demande d'autorisation | Renvoie `boolean` |
---

View File

@@ -61,11 +61,11 @@ Le thème système est destiné aux utilisateurs qui :
## Utiliser un thème
Vous pouvez sélectionner un thème en affichant la sélection de thème avec la commande `/theme`. Ou vous pouvez le spécifier dans votre [config](/docs/config).
Vous pouvez sélectionner un thème en affichant la sélection de thème avec la commande `/theme`. Ou vous pouvez le spécifier dans `tui.json`.
```json title="opencode.json" {3}
```json title="tui.json" {3}
{
"$schema": "https://opencode.ai/config.json",
"$schema": "https://opencode.ai/tui.json",
"theme": "tokyonight"
}
```

View File

@@ -355,24 +355,34 @@ Certains éditeurs ont besoin d'arguments de ligne de commande pour s'exécuter
## Configurer
Vous pouvez personnaliser le comportement de TUI via votre fichier de configuration OpenCode.
Vous pouvez personnaliser le comportement de TUI via `tui.json` (ou `tui.jsonc`).
```json title="opencode.json"
```json title="tui.json"
{
"$schema": "https://opencode.ai/config.json",
"tui": {
"scroll_speed": 3,
"scroll_acceleration": {
"enabled": true
}
}
"$schema": "https://opencode.ai/tui.json",
"theme": "opencode",
"keybinds": {
"leader": "ctrl+x"
},
"scroll_speed": 3,
"scroll_acceleration": {
"enabled": true
},
"diff_style": "auto"
}
```
Ceci est séparé de `opencode.json`, qui configure le comportement du serveur/d'exécution.
### Options
- `scroll_acceleration` - Activez l'accélération de défilement de style macOS pour un défilement fluide et naturel. Lorsqu'elle est activée, la vitesse de défilement augmente avec les gestes de défilement rapides et reste précise pour les mouvements plus lents. **Ce paramètre est prioritaire sur `scroll_speed` et le remplace lorsqu'il est activé.**
- `scroll_speed` - Contrôle la vitesse de défilement du TUI lors de l'utilisation des commandes de défilement (minimum : `1`). La valeur par défaut est `3`. **Remarque : Ceci est ignoré si `scroll_acceleration.enabled` est défini sur `true`.**
- `theme` - Définit votre thème d'interface utilisateur. [En savoir plus](/docs/themes).
- `keybinds` - Personnalise les raccourcis clavier. [En savoir plus](/docs/keybinds).
- `scroll_acceleration.enabled` - Activez l'accélération de défilement de style macOS pour un défilement fluide et naturel. Lorsqu'elle est activée, la vitesse de défilement augmente avec les gestes de défilement rapides et reste précise pour les mouvements plus lents. **Ce paramètre est prioritaire sur `scroll_speed` et le remplace lorsqu'il est activé.**
- `scroll_speed` - Contrôle la vitesse de défilement du TUI lors de l'utilisation des commandes de défilement (minimum : `0.001`, prend en charge les valeurs décimales). La valeur par défaut est `3`. **Remarque : Ceci est ignoré si `scroll_acceleration.enabled` est défini sur `true`.**
- `diff_style` - Contrôle le rendu différentiel. `"auto"` s'adapte à la largeur du terminal, `"stacked"` affiche toujours une seule colonne.
Utilisez `OPENCODE_TUI_CONFIG` pour charger un chemin de configuration TUI personnalisé.
---

View File

@@ -3,7 +3,7 @@ title: Zen
description: Liste organisée de modèles fournis par OpenCode.
---
import config from "../../../../config.mjs"
import config from "../../../config.mjs"
export const console = config.console
export const email = `mailto:${config.email}`
@@ -13,33 +13,25 @@ OpenCode Zen est une liste de modèles testés et vérifiés fournie par l'équi
OpenCode Zen est actuellement en version bêta.
:::
Zen fonctionne comme n'importe quel autre fournisseur dans OpenCode. Vous vous connectez à OpenCode Zen et obtenez
votre clé API. C'est **complètement facultatif** et vous n'avez pas besoin de l'utiliser pour l'utiliser
OpenCode.
Zen fonctionne comme n'importe quel autre fournisseur dans OpenCode. Vous vous connectez à OpenCode Zen et obtenez votre clé API. C'est **complètement facultatif** et vous n'avez pas besoin de l'utiliser pour utiliser OpenCode.
---
## Arrière-plan
Il existe un grand nombre de modèles, mais seulement quelques-uns d'entre eux
ces modèles fonctionnent bien comme agents de codage. De plus, la plupart des fournisseurs sont
configuré très différemment; vous obtenez donc des performances et une qualité très différentes.
Il existe un grand nombre de modèles, mais seulement quelques-uns d'entre eux fonctionnent bien comme agents de codage. De plus, la plupart des fournisseurs sont configurés très différemment; vous obtenez donc des performances et une qualité très différentes.
:::tip
Nous avons testé un groupe sélectionné de modèles et de fournisseurs qui fonctionnent bien avec OpenCode.
:::
Donc, si vous utilisez un modèle via quelque chose comme OpenRouter, vous ne pourrez jamais être
assurez-vous que vous obtenez la meilleure version du modèle que vous souhaitez.
Donc, si vous utilisez un modèle via quelque chose comme OpenRouter, vous ne pourrez jamais être sûr que vous obtenez la meilleure version du modèle que vous souhaitez.
Pour résoudre ce problème, nous avons effectué plusieurs opérations :
Pour résoudre ce problème, nous avons effectué plusieurs opérations :
1. Nous avons testé un groupe sélectionné de modèles et discuté avec leurs équipes de la manière de
mieux vaut les exécuter.
2. Nous avons ensuite travaillé avec quelques prestataires pour nous assurer qu'ils étaient servis.
correctement.
3. Enfin, nous avons comparé la combinaison modèle/fournisseur et sommes arrivés
avec une liste que nous nous ferons un plaisir de recommander.
1. Nous avons testé un groupe sélectionné de modèles et discuté avec leurs équipes de la manière de mieux les exécuter.
2. Nous avons ensuite travaillé avec quelques prestataires pour nous assurer qu'ils étaient servis correctement.
3. Enfin, nous avons comparé la combinaison modèle/fournisseur et sommes arrivés avec une liste que nous nous ferons un plaisir de recommander.
OpenCode Zen est une passerelle IA qui vous donne accès à ces modèles.
@@ -49,8 +41,7 @@ OpenCode Zen est une passerelle IA qui vous donne accès à ces modèles.
OpenCode Zen fonctionne comme n'importe quel autre fournisseur dans OpenCode.
1. Vous vous connectez à **<a href={console}>OpenCode Zen</a>**, ajoutez votre facturation
détails et copiez votre clé API.
1. Vous vous connectez à **<a href={console}>OpenCode Zen</a>**, ajoutez vos informations de facturation et copiez votre clé API.
2. Vous exécutez la commande `/connect` dans le TUI, sélectionnez OpenCode Zen et collez votre clé API.
3. Exécutez `/models` dans le TUI pour voir la liste des modèles que nous recommandons.
@@ -64,6 +55,7 @@ Vous pouvez également accéder à nos modèles via les points de terminaison AP
| Modèle | ID du modèle | Point de terminaison | Package SDK IA |
| ------------------ | ------------------ | -------------------------------------------------- | --------------------------- |
| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
@@ -73,36 +65,36 @@ Vous pouvez également accéder à nos modèles via les points de terminaison AP
| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` |
| Gemini 3 Pro | gemini-3-pro | `https://opencode.ai/zen/v1/models/gemini-3-pro` | `@ai-sdk/google` |
| Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` |
| MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| MiniMax M2.5 Free | minimax-m2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| MiniMax M2.1 | minimax-m2.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| MiniMax M2.1 Free | minimax-m2.1-free | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| GLM 4.7 | glm-4.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| GLM 4.7 Free | glm-4.7-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| GLM 4.6 | glm-4.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2.5 Free | kimi-k2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2 Thinking | kimi-k2-thinking | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2 | kimi-k2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Qwen3 Coder 480B | qwen3-coder | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
Le [id du modèle](/docs/config/#models) dans votre configuration OpenCode
utilise le format `opencode/<model-id>`. Par exemple, pour GPT 5.2 Codex, vous devez
utilisez `opencode/gpt-5.2-codex` dans votre configuration.
Le [id du modèle](/docs/config/#models) dans votre configuration OpenCode utilise le format `opencode/<model-id>`. Par exemple, pour GPT 5.2 Codex, vous devez utilisez `opencode/gpt-5.2-codex` dans votre configuration.
---
### Modèles
Vous pouvez récupérer la liste complète des modèles disponibles et leurs métadonnées à partir de :
Vous pouvez récupérer la liste complète des modèles disponibles et leurs métadonnées à partir de :
```
https://opencode.ai/zen/v1/models
@@ -117,29 +109,34 @@ Nous soutenons un modèle de paiement à l'utilisation. Vous trouverez ci-dessou
| Modèle | Entrée | Sortie | Lecture en cache | Écriture en cache |
| --------------------------------- | ------- | ------- | ---------------- | ----------------- |
| Big Pickle | Gratuit | Gratuit | Gratuit | - |
| MiniMax M2.1 Free | Gratuit | Gratuit | Gratuit | - |
| MiniMax M2.5 Free | Gratuit | Gratuit | Gratuit | - |
| MiniMax M2.5 | 0,30 $ | 1,20 $ | 0,06 $ | - |
| MiniMax M2.1 | 0,30 $ | 1,20 $ | 0,10 $ | - |
| GLM 4.7 Free | Gratuit | Gratuit | Gratuit | - |
| GLM 5 | 1,00 $ | 3,20 $ | 0,20 $ | - |
| GLM 4.7 | 0,60 $ | 2,20 $ | 0,10 $ | - |
| GLM 4.6 | 0,60 $ | 2,20 $ | 0,10 $ | - |
| Kimi K2.5 Free | Gratuit | Gratuit | Gratuit | - |
| Kimi K2.5 | 0,60 $ | 3,00 $ | 0,08 $ | - |
| Kimi K2 Thinking | 0,40 $ | 2,50 $ | - | - |
| Kimi K2 | 0,40 $ | 2,50 $ | - | - |
| Qwen3 Coder 480B | 0,45 $ | 1,50 $ | - | - |
| Claude Opus 4.6 (≤ 200K jetons) | 5,00 $ | 25,00 $ | 0,50 $ | 6,25 $ |
| Claude Opus 4.6 (> 200K jetons) | 10,00 $ | 37,50 $ | 1,00 $ | 12,50 $ |
| Claude Opus 4.5 | 5,00 $ | 25,00 $ | 0,50 $ | 6,25 $ |
| Claude Opus 4.1 | 15,00 $ | 75,00 $ | 1,50 $ | 18,75 $ |
| Claude Sonnet 4.6 (≤ 200K jetons) | 3,00 $ | 15,00 $ | 0,30 $ | 3,75 $ |
| Claude Sonnet 4.6 (> 200K jetons) | 6,00 $ | 22,50 $ | 0,60 $ | 7,50 $ |
| Claude Sonnet 4.5 (≤ 200K jetons) | 3,00 $ | 15,00 $ | 0,30 $ | 3,75 $ |
| Claude Sonnet 4.5 (> 200K jetons) | 6,00 $ | 22,50 $ | 0,60 $ | 7,50 $ |
| Claude Sonnet 4 (≤ 200K jetons) | 3,00 $ | 15,00 $ | 0,30 $ | 3,75 $ |
| Claude Sonnet 4 (> 200K jetons) | 6,00 $ | 22,50 $ | 0,60 $ | 7,50 $ |
| Claude Haiku 4.5 | 1,00 $ | 5,00 $ | 0,10 $ | 1,25 $ |
| Claude Haiku 3.5 | 0,80 $ | 4,00 $ | 0,08 $ | 1,00 $ |
| Claude Opus 4.6 (≤ 200K jetons) | 5,00 $ | 25,00 $ | 0,50 $ | 6,25 $ |
| Claude Opus 4.6 (> 200K jetons) | 10,00 $ | 37,50 $ | 1,00 $ | 12,50 $ |
| Claude Opus 4.5 | 5,00 $ | 25,00 $ | 0,50 $ | 6,25 $ |
| Claude Opus 4.1 | 15,00 $ | 75,00 $ | 1,50 $ | 18,75 $ |
| Gemini 3 Pro (≤ 200 000 jetons) | 2,00 $ | 12,00 $ | 0,20 $ | - |
| Gemini 3 Pro (> 200 000 jetons) | 4,00 $ | 18,00 $ | 0,40 $ | - |
| Gemini 3.1 Pro (≤ 200K jetons) | 2,00 $ | 12,00 $ | 0,20 $ | - |
| Gemini 3.1 Pro (> 200K jetons) | 4,00 $ | 18,00 $ | 0,40 $ | - |
| Gemini 3 Pro (≤ 200K jetons) | 2,00 $ | 12,00 $ | 0,20 $ | - |
| Gemini 3 Pro (> 200K jetons) | 4,00 $ | 18,00 $ | 0,40 $ | - |
| Gemini 3 Flash | 0,50 $ | 3,00 $ | 0,05 $ | - |
| GPT 5.3 Codex | 1,75 $ | 14,00 $ | 0,175 $ | - |
| GPT 5.2 | 1,75 $ | 14,00 $ | 0,175 $ | - |
| GPT 5.2 Codex | 1,75 $ | 14,00 $ | 0,175 $ | - |
| GPT 5.1 | 1,07 $ | 8,50 $ | 0,107 $ | - |
@@ -158,9 +155,7 @@ Les frais de carte de crédit sont répercutés au prix coûtant (4,4 % + 0,30 $
Les modèles gratuits :
- GLM 4.7 Free est disponible sur OpenCode pour une durée limitée. Léquipe profite de ce temps pour recueillir des commentaires et améliorer le modèle.
- Kimi K2.5 Free est disponible sur OpenCode pour une durée limitée. Léquipe profite de ce temps pour recueillir des commentaires et améliorer le modèle.
- MiniMax M2.1 Free est disponible sur OpenCode pour une durée limitée. Léquipe profite de ce temps pour recueillir des commentaires et améliorer le modèle.
- MiniMax M2.5 Free est disponible sur OpenCode pour une durée limitée. Léquipe profite de ce temps pour recueillir des commentaires et améliorer le modèle.
- Big Pickle est un modèle furtif gratuit sur OpenCode pour une durée limitée. Léquipe profite de ce temps pour recueillir des commentaires et améliorer le modèle.
<a href={email}>Contactez-nous</a> si vous avez des questions.
@@ -177,48 +172,41 @@ Vous pouvez modifier le montant du rechargement automatique. Vous pouvez égalem
### Limites mensuelles
Vous pouvez également définir une limite d'utilisation mensuelle pour l'ensemble de l'espace de travail et pour chaque
membre de votre équipe.
Vous pouvez également définir une limite d'utilisation mensuelle pour l'ensemble de l'espace de travail et pour chaque membre de votre équipe.
Par exemple, disons que vous définissez une limite d'utilisation mensuelle à 20 $, Zen n'utilisera pas
plus de 20 $ par mois. Mais si le rechargement automatique est activé, Zen pourrait finir par
vous facturant plus de 20 $ si votre solde descend en dessous de 5 $.
Par exemple, disons que vous définissez une limite d'utilisation mensuelle à 20 $, Zen n'utilisera pas plus de 20 $ par mois. Mais si le rechargement automatique est activé, Zen pourrait finir par vous facturant plus de 20 $ si votre solde descend en dessous de 5 $.
---
## Confidentialité
Tous nos modèles sont hébergés aux États-Unis. Nos fournisseurs suivent une politique de rétention zéro et n'utilisent pas vos données pour la formation de modèles, avec les exceptions suivantes :
Tous nos modèles sont hébergés aux États-Unis. Nos fournisseurs suivent une politique de rétention zéro et n'utilisent pas vos données pour la formation de modèles, avec les exceptions suivantes :
- Big Pickle : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle.
- GLM 4.7 Gratuit : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle.
- Kimi K2.5 Gratuit : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle.
- MiniMax M2.1 Gratuit : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle.
- API OpenAI : les demandes sont conservées pendant 30 jours conformément aux politiques de données de [OpenAI](https://platform.openai.com/docs/guides/your-data).
- API Anthropic : les demandes sont conservées pendant 30 jours conformément aux [Politiques de données d'Anthropic](https://docs.anthropic.com/en/docs/claude-code/data-usage).
- MiniMax M2.5 Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle.
- API OpenAI : Les demandes sont conservées pendant 30 jours conformément aux politiques de données de [OpenAI](https://platform.openai.com/docs/guides/your-data).
- API Anthropic : Les demandes sont conservées pendant 30 jours conformément aux [Politiques de données d'Anthropic](https://docs.anthropic.com/en/docs/claude-code/data-usage).
---
## Pour les équipes
Zen fonctionne également très bien pour les équipes. Vous pouvez inviter des coéquipiers, attribuer des rôles, organiser
les modèles utilisés par votre équipe, et bien plus encore.
Zen fonctionne également très bien pour les équipes. Vous pouvez inviter des coéquipiers, attribuer des rôles, organiser les modèles utilisés par votre équipe, et bien plus encore.
:::note
Les espaces de travail sont actuellement gratuits pour les équipes dans le cadre de la version bêta.
:::
La gestion de votre espace de travail est actuellement gratuite pour les équipes dans le cadre de la version bêta. Nous serons
partagera bientôt plus de détails sur les prix.
La gestion de votre espace de travail est actuellement gratuite pour les équipes dans le cadre de la version bêta. Nous partagerons bientôt plus de détails sur les prix.
---
### Rôles
Vous pouvez inviter des coéquipiers dans votre espace de travail et attribuer des rôles :
Vous pouvez inviter des coéquipiers dans votre espace de travail et attribuer des rôles :
- **Administrateur** : gérez les modèles, les membres, les clés API et la facturation.
- **Membre** : gérer uniquement ses propres clés API
- **Administrateur** : gérez les modèles, les membres, les clés API et la facturation.
- **Membre** : gérer uniquement ses propres clés API
Les administrateurs peuvent également définir des limites de dépenses mensuelles pour chaque membre afin de garder les coûts sous contrôle.
@@ -228,8 +216,7 @@ Les administrateurs peuvent également définir des limites de dépenses mensuel
Les administrateurs peuvent activer ou désactiver des modèles spécifiques pour l'espace de travail. Les requêtes adressées à un modèle désactivé renverront une erreur.
Ceci est utile dans les cas où vous souhaitez désactiver l'utilisation d'un modèle qui
collecte des données.
Ceci est utile dans les cas où vous souhaitez désactiver l'utilisation d'un modèle qui collecte des données.
---
@@ -239,8 +226,7 @@ Vous pouvez utiliser vos propres clés OpenAI ou Anthropic API tout en accédant
Lorsque vous utilisez vos propres clés, les tokens sont facturés directement par le fournisseur et non par Zen.
Par exemple, votre organisation dispose peut-être déjà d'une clé pour OpenAI ou Anthropic
et vous souhaitez l'utiliser à la place de celui fourni par Zen.
Par exemple, votre organisation dispose peut-être déjà d'une clé pour OpenAI ou Anthropic et vous souhaitez l'utiliser à la place de celui fourni par Zen.
---
@@ -250,5 +236,5 @@ Nous avons créé OpenCode Zen pour :
1. **Benchmark** les meilleurs modèles/fournisseurs d'agents de codage.
2. Ayez accès aux options de **la plus haute qualité** et ne dégradez pas les performances ni ne vous dirigez vers des fournisseurs moins chers.
3. Répercutez toute **baisse de prix** en vendant au prix coûtant ; la seule majoration est donc pour couvrir nos frais de traitement.
3. Répercutez toute **baisse de prix** en vendant au prix coûtant ; la seule majoration est donc pour couvrir nos frais de traitement.
4. N'ayez **aucun verrouillage** en vous permettant de l'utiliser avec n'importe quel autre agent de codage. Et laissez-vous toujours utiliser n'importe quel autre fournisseur avec OpenCode également.