Last active
April 4, 2026 07:33
-
-
Save fedir/15d54f2c596e323ffb82a8883527b8cb to your computer and use it in GitHub Desktop.
opencode.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "plugin": ["opencode-claude-auth"], | |
| /* ─── Modèles ─────────────────────────────────────────────────────────────── | |
| model : modèle principal pour le codage et le refactoring | |
| small_model : modèle léger pour les tâches automatiques (titres, résumés, | |
| compaction) — OpenCode le choisit seul quand c'est suffisant */ | |
| "model": "anthropic/claude-sonnet-4-6", | |
| "small_model": "anthropic/claude-haiku-4-5", | |
| /* ─── Compaction du contexte ──────────────────────────────────────────────── | |
| auto : compacte quand le contexte approche la limite | |
| prune : élague les anciens outputs d'outils AVANT la compaction complète | |
| (seuil interne : >40k tokens d'outputs, minimum 20k purgés) | |
| reserved : Grafana est un gros monorepo Go+TypeScript → les lectures de | |
| fichiers et grep accumulent vite des outputs volumineux. | |
| 30 000 garantit qu'une réponse complète peut toujours sortir | |
| même après une rafale d'appels d'outils en fin de session. */ | |
| "compaction": { | |
| "auto": true, | |
| "prune": true, | |
| "reserved": 30000 | |
| }, | |
| /* ─── Permissions ──────────────────────────────────────────────────────────── | |
| "ask" sur bash et edit : évite les actions non voulues qui gaspillent | |
| des tokens en correction. "allow" pour read-only (lecture gratuite). */ | |
| "permission": { | |
| "edit": "ask", | |
| "bash": "ask" | |
| }, | |
| /* ─── Agents spécialisés ───────────────────────────────────────────────────── | |
| title et summarize sont omis : small_model les gère automatiquement. */ | |
| "agent": { | |
| /* Agent principal de codage → sessions longues sur Grafana, | |
| maxSteps élevé car le refactoring multi-fichiers Go/TS enchaîne | |
| beaucoup d'appels d'outils (lecture, grep, édition, tests) */ | |
| "build": { | |
| "model": "anthropic/claude-sonnet-4-6", | |
| "maxSteps": 60, | |
| "temperature": 0 | |
| }, | |
| /* Agent exploration (read-only) → navigation dans le dépôt Grafana | |
| sans risque de modification accidentelle, Haiku suffit pour lire/chercher */ | |
| "explore": { | |
| "model": "anthropic/claude-haiku-4-5", | |
| "maxSteps": 20, | |
| "temperature": 0 | |
| }, | |
| /* Agent planification → analyse avant refactoring, Sonnet pour la qualité */ | |
| "plan": { | |
| "model": "anthropic/claude-sonnet-4-6", | |
| "maxSteps": 15, | |
| "temperature": 0 | |
| } | |
| }, | |
| /* ─── Providers actifs ─────────────────────────────────────────────────────── | |
| N'activer que ce dont vous avez besoin → évite les appels accidentels */ | |
| "enabled_providers": ["anthropic"], | |
| /* ─── Options provider ───────────────────────────────────────────────────────*/ | |
| "provider": { | |
| "anthropic": { | |
| "options": { | |
| /* Grafana = sessions longues avec beaucoup de fichiers lus → | |
| 600 000 ms (10 min) évite les timeouts sur les refactorings lents */ | |
| "timeout": 600000, | |
| /* setCacheKey active le prompt caching d'Anthropic : | |
| les parties stables du contexte (system prompt, fichiers déjà lus) | |
| sont mises en cache côté serveur → jusqu'à 90% d'économie sur | |
| les tokens d'entrée répétés entre les tours d'une même session */ | |
| "setCacheKey": true | |
| }, | |
| "models": { | |
| "claude-sonnet-4-6": { | |
| "variants": { | |
| "fast": { "temperature": 0 }, | |
| "think": { | |
| "thinking": { "type": "enabled", "budgetTokens": 8000 } | |
| } | |
| } | |
| }, | |
| "claude-haiku-4-5": { | |
| "variants": { | |
| "small": { "temperature": 0 } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| /* ─── Watcher ──────────────────────────────────────────────────────────────── | |
| Grafana est un monorepo Go+TypeScript volumineux. | |
| Exclure tout ce qui génère du bruit sans valeur pour l'agent. */ | |
| "watcher": { | |
| "ignore": [ | |
| "node_modules/**", | |
| ".git/**", | |
| "dist/**", | |
| "build/**", | |
| "public/build/**", /* bundles Webpack/Vite de Grafana */ | |
| ".next/**", | |
| "__pycache__/**", | |
| "*.lock", | |
| "coverage/**", | |
| "vendor/**", /* dépendances Go vendorisées (énorme) */ | |
| "**/*.pb.go", /* fichiers protobuf générés */ | |
| "**/*_gen.go", /* fichiers Go auto-générés */ | |
| "data/**", /* données de session Grafana locale */ | |
| "tmp/**" | |
| ] | |
| }, | |
| /* ─── Snapshots ────────────────────────────────────────────────────────────── | |
| Désactivé : Grafana est un monorepo très volumineux, les snapshots | |
| causent une indexation git interne lente et une consommation disque élevée. | |
| Utiliser `git diff` / `git stash` pour annuler les changements à la place. */ | |
| "snapshot": false, | |
| /* ─── Formatters ───────────────────────────────────────────────────────────── | |
| Grafana utilise Go + TypeScript → activer gofmt et prettier */ | |
| "formatter": { | |
| "prettier": { | |
| "disabled": false /* TypeScript / CSS / JSON */ | |
| }, | |
| "gofmt": { | |
| "disabled": false /* Go — natif dans le toolchain Go */ | |
| } | |
| }, | |
| /* ─── Instructions ─────────────────────────────────────────────────────────── | |
| AGENTS.md est chargé automatiquement depuis la racine du projet. | |
| Les fichiers ci-dessous sont combinés avec lui à chaque session. | |
| Glob patterns supportés → charge les AGENTS.md de tous les sous-packages. */ | |
| "instructions": [ | |
| "AGENTS.md", | |
| "packages/*/AGENTS.md", /* sous-packages Grafana si monorepo */ | |
| "docs/development.md" /* décommenter si ce fichier existe */ | |
| ], | |
| /* ─── MCP Servers ──────────────────────────────────────────────────────────── | |
| Ajouter uniquement les serveurs MCP réellement utilisés | |
| (chaque serveur augmente la taille du contexte système) */ | |
| "mcp": { | |
| /* Exemple filesystem — décommenter si nécessaire | |
| "filesystem": { | |
| "type": "stdio", | |
| "command": "npx", | |
| "args": ["-y", "@modelcontextprotocol/server-filesystem", "."] | |
| } */ | |
| }, | |
| /* ─── Mise à jour automatique ──────────────────────────────────────────────── | |
| "notify" : signale les nouvelles versions sans bloquer le démarrage */ | |
| "autoupdate": "notify", | |
| /* ─── UI ─────────────────────────────────────────────────────────────────────*/ | |
| "theme": "opencode" | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "plugin": ["opencode-claude-auth"], | |
| // ─── Modèles ─────────────────────────────────────────────────────────────── | |
| // model : modèle principal pour le codage et le refactoring | |
| // small_model : modèle léger pour les tâches automatiques (titres, résumés, | |
| // compaction) — OpenCode le choisit seul quand c'est suffisant | |
| "model": "anthropic/claude-sonnet-4-6", | |
| "small_model": "anthropic/claude-haiku-4-5", | |
| // ─── Compaction du contexte ──────────────────────────────────────────────── | |
| // auto : compacte quand le contexte approche la limite | |
| // prune : élague les anciens outputs d'outils AVANT la compaction complète | |
| // (seuil interne : >40k tokens d'outputs, minimum 20k purgés) | |
| // reserved : Grafana est un gros monorepo Go+TypeScript → les lectures de | |
| // fichiers et grep accumulent vite des outputs volumineux. | |
| // 30 000 garantit qu'une réponse complète peut toujours sortir | |
| // même après une rafale d'appels d'outils en fin de session. | |
| "compaction": { | |
| "auto": true, | |
| "prune": true, | |
| "reserved": 30000 | |
| }, | |
| // ─── Permissions ────────────────────────────────────────────────────────── | |
| // "ask" sur bash et edit : évite les actions non voulues qui gaspillent | |
| // des tokens en correction. "allow" pour read-only (lecture gratuite). | |
| "permission": { | |
| "edit": "ask", | |
| "bash": "ask" | |
| }, | |
| // ─── Agents spécialisés ──────────────────────────────────────────────────── | |
| // title et summarize sont omis : small_model les gère automatiquement. | |
| "agent": { | |
| // Agent principal de codage → sessions longues sur Grafana, | |
| // maxSteps élevé car le refactoring multi-fichiers Go/TS enchaîne | |
| // beaucoup d'appels d'outils (lecture, grep, édition, tests) | |
| "build": { | |
| "model": "anthropic/claude-sonnet-4-6", | |
| "maxSteps": 60, | |
| "temperature": 0 | |
| }, | |
| // Agent exploration (read-only) → navigation dans le dépôt Grafana | |
| // sans risque de modification accidentelle, Haiku suffit pour lire/chercher | |
| "explore": { | |
| "model": "anthropic/claude-haiku-4-5", | |
| "maxSteps": 20, | |
| "temperature": 0 | |
| }, | |
| // Agent planification → analyse avant refactoring, Sonnet pour la qualité | |
| "plan": { | |
| "model": "anthropic/claude-sonnet-4-6", | |
| "maxSteps": 15, | |
| "temperature": 0 | |
| } | |
| }, | |
| // ─── Providers actifs ───────────────────────────────────────────────────── | |
| // N'activer que ce dont vous avez besoin → évite les appels accidentels | |
| "enabled_providers": ["anthropic"], | |
| // ─── Options provider ───────────────────────────────────────────────────── | |
| "provider": { | |
| "anthropic": { | |
| "options": { | |
| // Grafana = sessions longues avec beaucoup de fichiers lus → | |
| // 600 000 ms (10 min) évite les timeouts sur les refactorings lents | |
| "timeout": 600000, | |
| // setCacheKey active le prompt caching d'Anthropic : | |
| // les parties stables du contexte (system prompt, fichiers déjà lus) | |
| // sont mises en cache côté serveur → jusqu'à 90% d'économie sur | |
| // les tokens d'entrée répétés entre les tours d'une même session | |
| "setCacheKey": true | |
| }, | |
| "models": { | |
| "claude-sonnet-4-6": { | |
| "variants": { | |
| "fast": { "temperature": 0 }, | |
| "think": { | |
| "thinking": { "type": "enabled", "budgetTokens": 8000 } | |
| } | |
| } | |
| }, | |
| "claude-haiku-4-5": { | |
| "variants": { | |
| "small": { "temperature": 0 } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| // ─── Watcher ────────────────────────────────────────────────────────────── | |
| // Grafana est un monorepo Go+TypeScript volumineux. | |
| // Exclure tout ce qui génère du bruit sans valeur pour l'agent. | |
| "watcher": { | |
| "ignore": [ | |
| "node_modules/**", | |
| ".git/**", | |
| "dist/**", | |
| "build/**", | |
| "public/build/**", // bundles Webpack/Vite de Grafana | |
| ".next/**", | |
| "__pycache__/**", | |
| "*.lock", | |
| "coverage/**", | |
| "vendor/**", // dépendances Go vendorisées (énorme) | |
| "**/*.pb.go", // fichiers protobuf générés | |
| "**/*_gen.go", // fichiers Go auto-générés | |
| "data/**", // données de session Grafana locale | |
| "tmp/**" | |
| ] | |
| }, | |
| // ─── Snapshots ───────────────────────────────────────────────────────────── | |
| // Désactivé : Grafana est un monorepo très volumineux, les snapshots | |
| // causent une indexation git interne lente et une consommation disque élevée. | |
| // Utiliser `git diff` / `git stash` pour annuler les changements à la place. | |
| "snapshot": false, | |
| // ─── Formatters ──────────────────────────────────────────────────────────── | |
| // Grafana utilise Go + TypeScript → activer gofmt et prettier | |
| "formatter": { | |
| "prettier": { | |
| "disabled": false // TypeScript / CSS / JSON | |
| }, | |
| "gofmt": { | |
| "disabled": false // Go — natif dans le toolchain Go | |
| } | |
| }, | |
| // ─── Instructions ────────────────────────────────────────────────────────── | |
| // AGENTS.md est chargé automatiquement depuis la racine du projet. | |
| // Les fichiers ci-dessous sont combinés avec lui à chaque session. | |
| // Glob patterns supportés → charge les AGENTS.md de tous les sous-packages. | |
| "instructions": [ | |
| "AGENTS.md", | |
| "packages/*/AGENTS.md", // sous-packages Grafana si monorepo | |
| "docs/development.md" // décommenter si ce fichier existe | |
| ], | |
| // ─── LSP ─────────────────────────────────────────────────────────────────── | |
| // OpenCode utilise les diagnostics LSP pour corriger les erreurs de type | |
| // et d'import dans le même tour — sans aller-retour supplémentaire. | |
| // Grafana = Go (backend) + TypeScript (frontend) → deux serveurs LSP. | |
| "lsp": { | |
| // gopls est intégré et démarre automatiquement sur les fichiers .go. | |
| // On surcharge uniquement l'initialization pour activer staticcheck. | |
| "go": { | |
| "initialization": { | |
| "analyses": { | |
| "staticcheck": true | |
| } | |
| } | |
| }, | |
| // typescript-language-server est intégré et démarre automatiquement | |
| // quand typescript est détecté comme dépendance du projet. | |
| // On surcharge uniquement la préférence d'import pour matcher Grafana. | |
| "typescript": { | |
| "initialization": { | |
| "preferences": { | |
| "importModuleSpecifierPreference": "relative" | |
| } | |
| } | |
| } | |
| }, | |
| // ─── MCP Servers ─────────────────────────────────────────────────────────── | |
| // Ajouter uniquement les serveurs MCP réellement utilisés | |
| // (chaque serveur augmente la taille du contexte système) | |
| "mcp": { | |
| // Exemple filesystem — décommenter si nécessaire | |
| // "filesystem": { | |
| // "type": "stdio", | |
| // "command": "npx", | |
| // "args": ["-y", "@modelcontextprotocol/server-filesystem", "."] | |
| // } | |
| }, | |
| // ─── Mise à jour automatique ─────────────────────────────────────────────── | |
| "autoupdate": "notify", // notifie sans bloquer le démarrage | |
| // ─── UI ──────────────────────────────────────────────────────────────────── | |
| "theme": "opencode" | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment