🧭 Sommaire
🧠 Qu'est-ce qu'un mode dans Roocode ?
Un mode est une configuration dédiée qui détermine le comportement de Roocode dans un contexte donné :
- • Quelles tâches l'IA est censée accomplir
- • Quels outils elle peut utiliser (lecture, édition, terminal...)
- • Quels fichiers elle peut consulter ou modifier
- • Quelles instructions spécifiques elle doit respecter
💡 Concept clé
Chaque mode est donc un agent IA spécialisé, contextuel et délimité.
🎯 Pourquoi créer des modes personnalisés ?
🔧 Spécialisation
Un mode pour écrire la documentation, un autre pour auditer la sécurité, un pour faire des refactors.
🔒 Sécurité
Limiter un mode à la lecture seule, ou restreindre l'édition à certains fichiers sensibles.
👥 Collaboration
Tous les membres utilisent les mêmes modes (globaux ou partagés par projet).
🧪 Expérimentation
Tester un comportement IA sans impacter les autres modes.
🧩 Concepts fondamentaux d'un mode
Propriété | Description |
---|---|
slug | Identifiant unique, utilisé en interne et pour les règles/files associés |
name | Nom lisible dans l'UI (peut inclure des emojis) |
roleDefinition | Identité du mode : décrit son expertise, son rôle, ses objectifs |
whenToUse | (optionnel) Condition d'activation automatique (utile pour l'orchestrateur) |
groups | Outils autorisés (read, edit, browser, command, etc.) + restrictions de fichiers |
customInstructions | Consignes comportementales ajoutées à la fin du prompt système |
🧱 Structure complète d'un mode en YAML
- slug: doc-writer name: 📝 Rédacteur Technique roleDefinition: >- You are a documentation expert. You write precise, clear, and well-structured Markdown. whenToUse: Use when editing or creating documentation files. customInstructions: |- - Avoid redundancy. - Respect the style guide. groups: - read - - edit - fileRegex: \.md$ description: Only Markdown files
🛠️ Les groupes d'outils (groups)
Voici les groupes disponibles que vous pouvez activer :
📖 read
Lecture des fichiers
✏️ edit
Modification autorisée (avec restrictions possibles)
🌐 browser
Navigation web
⚡ command
Exécution de commandes système
🔌 mcp
Accès aux fonctions internes de Roocode
⚠️ Recommandation
Il est recommandé de limiter chaque mode à ce qui est strictement nécessaire pour des raisons de sécurité et de performance.
🧾 Gestion des fichiers éditables avec fileRegex
Le groupe edit
peut être affiné grâce à des expressions régulières (fileRegex
) pour ne permettre la modification que de certains types de fichiers.
Exemple : Fichiers Python uniquement
- - edit - fileRegex: \.py$ description: Only Python files
Exemple : TypeScript dans src/ uniquement
- - edit - fileRegex: ^src/.*\.ts$ description: Source TypeScript only
📝 Note importante
Les regex sont appliquées au chemin complet relatif depuis la racine du projet.
🌍 Où sont stockés les modes ?
Emplacement | Fichier | Portée |
---|---|---|
Global | ~/.roo/custom_modes.yaml | Tous projets |
Projet | ./.roomodes | Projet local |
🎯 Priorité
Les modes projet ont priorité sur les modes globaux en cas de slug
identique.
✨ Créer un mode personnalisé : 3 méthodes
A. En demandant à Roocode
"Create a new mode called `Auditeur`. It should only read files."
B. Via l'interface
- • Ouvrir le Prompts Tab
- • Cliquer sur "Create Mode"
- • Renseigner les champs (nom, slug, outils, etc.)
C. Manuellement
Éditer custom_modes.yaml
ou.roomodes
directement en YAML ou JSON.
📁 Instructions liées aux modes
Vous pouvez compléter customInstructions
avec des fichiers :
📂 .roo/rules-[slug]/
Dossier contenant plusieurs fichiers Markdown ou texte, triés par nom
📄 .roorules-[slug]
Fichier unique (fallback)
🔄 Injection automatique
Ces instructions sont lues et injectées dans le prompt système du mode actif.
📌 Sticky Models : un modèle IA par mode
Roocode mémorise le dernier modèle utilisé dans chaque mode :
📝 doc-writer
GPT-3.5 Turbo
Tâches légères de documentation
💻 code
GPT-4 Turbo
Développement complexe
💡 Avantage
Cela évite d'avoir à changer de modèle manuellement à chaque fois. Idéal pour alterner entre tâches légères et lourdes.
🪃 Orchestration automatique des modes
Roocode intègre un mode spécial appelé Orchestrator. Il permet à Roocode de choisir automatiquement quel mode utiliser en fonction de la tâche à accomplir.
🧠 Comment ça fonctionne ?
- • Chaque mode peut définir un champ
whenToUse
- • L'orchestrateur utilise cette propriété pour évaluer la pertinence d'un mode
- • Si aucun
whenToUse
n'est défini, il se rabat sur la première phrase deroleDefinition
📋 Exemple de scénario orchestré
Tâche : "Prépare une documentation technique pour ce fichier JS."
Roocode pourrait :
- 1. Lire le code avec le mode
reader
(lecture seule) - 2. Générer la doc avec le mode
doc-writer
- 3. Proposer une PR avec
dev-helper
Cela crée un pipeline intelligent multi-agents.
🛠️ Overrider les modes par défaut
Vous pouvez remplacer un mode natif (comme code
,debug
,ask
,architect
) par un mode personnalisé :
Exemple : override du mode code pour JS uniquement
- slug: code name: 💻 Code (JS uniquement) roleDefinition: You are a JS engineer using strict linting and modern practices. groups: - read - - edit - fileRegex: \.js$ description: Only JavaScript files customInstructions: |- - Use Prettier format - Always write clear function names
📌 Note importante
Le slug code
est suffisant pour overrider le mode par défaut !
💼 Exemples concrets de modes utiles
🔍 Auditeur (lecture seule)
- slug: audit name: 👀 Auditeur roleDefinition: You review code without modifying anything. Focus on issues. groups: - read
🧪 Test Engineer
- slug: test-engineer name: 🧪 Test Engineer roleDefinition: You write and review unit and integration tests. customInstructions: |- - Use describe/it - Cover edge cases - Mock dependencies groups: - read - - edit - fileRegex: \.test\.(js|ts)$
📚 Rédacteur Markdown
- slug: md-writer name: 📚 Rédacteur Markdown roleDefinition: You are a Markdown specialist. groups: - read - - edit - fileRegex: \.md$
✅ Bonnes pratiques & erreurs fréquentes
✅ À faire
- • Spécifier
whenToUse
si le mode doit participer à l'orchestration - • Utiliser
fileRegex
pour restreindre l'édition - • Regrouper les instructions avancées dans
.roo/rules-[slug]/
❌ À éviter
- • Donner le même
slug
à deux modes dans le même fichier - • Oublier de limiter les permissions (
groups
) d'un mode sensible - • Modifier un mode global sans sauvegarde préalable
❓ FAQ détaillée
Est-ce qu'un mode est un agent IA ?
Oui. Chaque mode est un prompt spécialisé avec outils, règles et instructions.
Peut-on chaîner plusieurs modes ?
Oui. Grâce à l'orchestrateur et au champ whenToUse
.
Comment partager un mode ?
Partage le contenu YAML ou JSON du mode, ou le fichier .roomodes
du projet.
Peut-on réutiliser un mode dans tous les projets ?
Oui, via custom_modes.yaml
(global). Sinon, .roomodes
est local.
Roocode supporte-t-il JSON et YAML ?
Oui, mais YAML est recommandé car plus lisible et commentable.
🎉 Conclusion
Ce guide complet sur les modes Roocode est désormais un référentiel robustepour toute équipe souhaitant structurer et spécialiser l'usage de l'IA au quotidien.
🚀 Prochaines étapes
- • Créez votre premier mode personnalisé
- • Expérimentez avec l'orchestration automatique
- • Partagez vos modes avec votre équipe
- • Explorez les possibilités avancées avec MCP
Restez Informé
Recevez les dernières actualités sur l'IA et le développement directement dans votre boîte mail. Conseils exclusifs, nouveautés Roocode et analyses approfondies.
En vous inscrivant, vous acceptez de recevoir nos emails. Vous pouvez vous désinscrire à tout moment.