IA pour développeurs · Tutoriel

Claude Code : activer le bac à sable des commandes, et savoir ce qu'il ne couvre pas

Claude Code peut enfermer les commandes shell qu'il lance dans un bac à sable imposé par le système d'exploitation. Il est désactivé par défaut et ne protège pas tout. Mise en route, réglages utiles et angles morts, d'après la documentation d'Anthropic.

Par Kayzen AI · · 3 min de lecture

Visuel officiel publié par Anthropic
Image : Anthropic

Un agent de code exécute des commandes sur votre machine. Deux approches existent pour limiter les dégâts : lui faire demander la permission à chaque fois, ou restreindre ce que ses commandes peuvent atteindre. Le bac à sable de Claude Code relève de la seconde. La documentation d'Anthropic précise qu'il est désactivé par défaut.

Ce que fait le bac à sable

Il pose une frontière, appliquée par le système d'exploitation, autour des commandes shell lancées par Claude et des processus qu'elles démarrent. Vous décidez quels fichiers et quels domaines réseau restent accessibles. Comme la limite est imposée par le système, Claude Code peut exécuter ces commandes sans demander une validation à chaque fois.

PlateformeMécanisme
macOSSeatbelt, intégré au système
Linux et WSL2bubblewrap
Windows natifnon pris en charge : les commandes tournent sans bac à sable

Mise en route

Sur macOS, rien à installer. Sous Linux ou WSL2, il faut deux paquets :

sudo apt-get install bubblewrap socat

Relancez ensuite Claude Code, puis tapez /sandbox dans une session et choisissez un mode. Pour l'activer partout, ajoutez "sandbox": {"enabled": true} dans ~/.claude/settings.json.

Deux modes existent, avec les mêmes restrictions de fichiers et de réseau. Seule l'approbation change : dans le premier, les commandes confinées s'exécutent sans question ; dans le second, chaque commande passe quand même par le circuit de permission habituel.

Pour vérifier que le confinement fonctionne, la documentation conseille de demander à Claude de lancer touch ~/sandbox-probe : la commande doit échouer.

Les réglages par défaut à connaître

  • Écriture : limitée au dossier de travail et au dossier temporaire de l'utilisateur.
  • Lecture : presque toute la machine reste lisible, y compris ~/.ssh et ~/.aws/credentials.
  • Réseau : aucun accès direct. Le trafic passe par un proxy local qui compare les noms d'hôte à une liste allowedDomains, vide au départ.
  • Variables d'environnement : héritées de Claude Code, secrets compris.

Le deuxième et le quatrième point méritent une action. La documentation indique qu'il n'existe pas de liste d'exclusion intégrée pour les identifiants. C'est à vous de la déclarer :

{
  "sandbox": {
    "enabled": true,
    "credentials": {
      "files": [
        {"path": "~/.aws/credentials", "mode": "deny"},
        {"path": "~/.ssh", "mode": "deny"}
      ],
      "envVars": [
        {"name": "GITHUB_TOKEN", "mode": "deny"}
      ]
    }
  }
}

Deux réglages pour une équipe

  • failIfUnavailable: true : si la plateforme n'est pas prise en charge ou si une dépendance manque, Claude Code s'arrête au lieu de continuer sans confinement, ce qu'il fait par défaut.
  • allowUnsandboxedCommands: false : quand une commande échoue dans le bac à sable, Claude peut normalement la relancer hors confinement. Ce réglage supprime cette échappatoire.

Ce que le bac à sable ne couvre pas

La liste est longue et la documentation ne la cache pas : les outils de lecture et d'écriture de fichiers de Claude, ses outils web, les serveurs MCP, les hooks, les commandes tapées après un !, les commandes que vous avez exclues, et Windows natif. Certains outils cassent aussi sous confinement : docker, les clients de base de données ou ssh ignorent le proxy et doivent être exclus au cas par cas.

Pour une isolation plus large, Anthropic renvoie vers un conteneur ou une machine virtuelle dans lesquels faire tourner Claude Code tout entier.

Notre lecture

Pour une petite équipe, le bac à sable réduit les interruptions sans laisser le shell en roue libre, à condition de ne pas s'arrêter au réglage par défaut. Trois gestes suffisent pour démarrer : l'activer, interdire la lecture des clés SSH et des identifiants cloud, et renseigner les domaines réellement nécessaires. Sur Windows, passez par WSL2, sinon il ne protège rien. Et gardez en tête que ce dispositif encadre les commandes shell, pas l'agent dans son ensemble : les serveurs MCP et les hooks restent hors périmètre.

Sources

  1. Anthropic — documentation Claude Code, bac à sable de l'outil Bash — source primaire