Sécurité, validations et autorisations

Vibe Code peut lire des fichiers, modifier du code, exécuter des commandes shell et appeler des outils externes en votre nom. Pour vous garantir un contrôle total sur ce qui s’exécute et ce qui change, Vibe Code repose sur des contrôles en couches :

  • Agents : des profils de configuration ; ils regroupent un prompt système, la sélection d’outils et les règles d'approbation. Ils définissent ce qui est validé automatiquement.
  • Dossiers de confiance : ils déterminent si Vibe peut charger la configuration projet, les compétences et les fichiers d’agent depuis le répertoire courant.
  • Permissions par outil : vous affinez ou assouplissez l’accès pour chaque outil.

Vibe demande également une confirmation à chaque fois qu’un outil tente de lire, écrire ou exécuter une commande en dehors du répertoire de travail courant, quel que soit l’agent actif.

Cette page détaille le fonctionnement de ces contrôles et leurs interactions.

Agents

Agents

L’agent actif définit la façon dont Vibe demande une validation avant d’exécuter des outils ; il peut également modifier le prompt système, le prompt de compaction, le modèle, les outils disponibles et d’autres paramètres.

Utilisez l’un des agents intégrés ci-dessous. Pour changer, définir un agent par défaut ou créer le vôtre, consultez la section Agents dans la CLI ou l’extension VS Code.

AgentComportement d’approbationUsage recommandé
defaultDemande une validation avant d’exécuter tout outil.Travail quotidien pour valider chaque action.
planLecture seule. Validation automatique pour la lecture, bloque modifications et commandes.Exploration d’une base de code inconnue ou conception d’une approche avant toute modification.
accept-editsValide automatiquement les modifications de fichiers. Demande toujours pour les commandes shell ou actions sensibles.Refactoring d’ampleur déjà délimité.
auto-approveValide automatiquement chaque action, y compris les commandes shell.Environnements de confiance et isolés uniquement. À utiliser avec discernement.
Avertissement

default_agent ne s’applique que dans les sessions interactives. En mode programmatique (vibe --prompt …), Vibe bascule sur auto-approve si --agent n’est pas précisé, et les outils interactifs comme ask_user_question sont désactivés. Utilisez explicitement --agent plan si vous souhaitez une exécution programmatique en lecture seule.

Dossiers de confiance

Dossiers de confiance

Un projet peut embarquer sa propre configuration Vibe (agents, compétences, serveurs MCP, permissions d’outils) dans un répertoire .vibe/ à la racine du repository. Comme ces paramètres modifient le comportement de Vibe, Vibe ne les charge que depuis les répertoires que vous avez explicitement approuvés.

Fonctionnement :

  • Lorsqu’une session interactive démarre dans un répertoire contenant des fichiers à approuver (comme .vibe/config.toml) et que l’état de confiance est inconnu, Vibe demande si le dossier peut être approuvé.
  • Les dossiers de confiance sont enregistrés dans ~/.vibe/trusted_folders.toml.
  • Si vous refusez ou n’avez pas encore approuvé un dossier, la configuration projet est ignorée et Vibe affiche un avertissement. La configuration utilisateur dans ~/.vibe/ reste active.
Astuce

Avant d’accorder la confiance à un répertoire, traitez sa configuration .vibe/ comme n’importe quel autre code du dépôt : auditez-la, en particulier les définitions de serveurs MCP et les permissions d’outils, car elles peuvent donner accès à des services externes ou à des commandes locales.

Confiance temporaire (CLI)

Confiance temporaire (CLI)

Le flag vibe --trust approuve le dossier de travail pour la seule exécution en cours et ne persiste pas.

Le mode programmatique ne demande jamais de validation de confiance. Utilisez --trust pour accorder une confiance temporaire lors d’un script Vibe.

# Autoriser le projet courant pour une seule exécution
vibe --trust --prompt "Lancer la suite de tests et résumer les échecs"
Permissions par outil

Permissions par outil

Au-delà des agents, vous pouvez restreindre ou ouvrir l’accès à des outils spécifiques dans config.toml. Cela s’applique aussi bien aux outils intégrés (read_file, write_file, bash, grep, etc.), qu’aux outils MCP ou connecteurs.

Activer ou désactiver des outils

Activer ou désactiver des outils

Activez/désactivez globalement des outils par nom exact, motif ou regex :

# Autoriser seulement la lecture et la recherche
enabled_tools = ["read_file", "grep", "task"]

# Ou désactiver une classe d’outils
disabled_tools = ["bash"]
Définir les permissions par outil

Définir les permissions par outil

Définissez quand Vibe doit demander l’autorisation avant d’utiliser un outil, ou l’autoriser systématiquement :

[tools.read_file]
permission = "always"

[tools.bash]
permission = "ask"
Listes d’autorisation et de blocage Bash

Listes d’autorisation et de blocage Bash

Pour l’outil bash, vous pouvez accorder ou bloquer des commandes précises. Certaines commandes sûres (ls, pwd, cat, echo, etc.) sont autorisées par défaut ; ajoutez les vôtres pour étoffer la liste :

[tools.bash]
permission = "ask"
allow = ["git status", "pnpm test"]
deny = ["rm -rf *"]
Outils MCP et connecteurs

Outils MCP et connecteurs

Les outils MCP sont référencés comme {server_name}_{tool_name}. Par exemple, pour autoriser systématiquement un outil get exposé par un serveur MCP nommé fetch_server :

[tools.fetch_server_get]
permission = "always"

Consultez Serveurs MCP pour la configuration complète, et Configuration pour la priorité entre réglages utilisateur et projet.

Modèle d’approbation

Modèle d’approbation

Le modèle de validation est cohérent sur la CLI, l’extension VS Code et Vibe Code Web. L’interface de validation diffère selon la surface :

Les demandes de validation apparaissent dans le chat. Utilisez le clavier :

ToucheAction
Entrée ou 1 ou YValider l’action.
2, 3, 4Valider avec une portée plus large (par exemple, autoriser systématiquement cet outil).
NRefuser l’action.
Haut / BasNaviguer entre les options.
ÉchapInterrompre l’agent.

L’agent actif et le mode de validation s’affichent dans la barre d’état. Changez en cours de session avec /config ou redémarrez avec vibe --agent <name>.

Bonnes pratiques

Bonnes pratiques

  • Commencez en mode plan pour un code inconnu. Explorez et concevez avant d’accorder la modification ou l’accès shell.
  • Validez vos commits avant les opérations risquées. Cela permet un retour immédiat en arrière (git reset --hard).
  • Utilisez accept-edits pour les refactorings de portée délimitée et vérifiez le diff avant de valider.
  • Réservez auto-approve aux environnements temporaires (conteneurs, runners CI, VMs éphémères). Ne l’utilisez jamais sur des machines contenant des clés SSH, identifiants cloud ou accès production.
  • Faites confiance de façon réfléchie. Vérifiez la configuration .vibe/ d’un dépôt lors de la première utilisation, et après chaque modification.
  • Renforcez la sécurité des outils MCP et connecteurs. Tout ce qui interagit avec des systèmes externes devrait être en permission = "ask" même sous accept-edits.
  • Versionnez votre configuration .vibe/ afin que l’équipe puisse relire et reproduire les décisions de sécurité.
  • Révoquez les accès devenus inutiles. Les connexions GitHub dans Vibe Code Web, les identifiants MCP ou les autorisations de connecteurs doivent être supprimés à la fin d’un projet.