mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-04-10 18:58:48 +00:00
chore(docs): i18n sync (#15417)
This commit is contained in:
@@ -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 |
|
||||
|
||||
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 d’environnement.
|
||||
|
||||
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. S’il n’est pas fourni, l’enregistrement 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.
|
||||
```
|
||||
|
||||
@@ -84,6 +84,38 @@ Il fonctionne comme n’importe 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 n’importe 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**.
|
||||
|
||||
@@ -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` |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
```
|
||||
|
||||
@@ -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é.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user