Configuration

Options et configuration avancée de parcai.

Options en ligne de commande

parcai se configure entièrement via des flags en ligne de commande : • --allow <chemin> — Autorise l'accès en lecture seule à un chemin (répétable) • --rw <chemin> — Autorise l'accès en lecture/écriture à un chemin (répétable) • --no-network — Désactive l'accès réseau dans le sandbox • --secrets — Active le masquage des secrets via proxy MITM local • --apply — Applique automatiquement les changements à la sortie • --discard — Rejette automatiquement les changements à la sortie • --dry-run — Affiche le profil de sandbox et le chemin du clone sans lancer le shell • --verbose — Affiche les détails de configuration (clone, profil, réseau) • --version — Affiche la version de parcai • --help — Affiche l'aide Note : --apply et --discard sont mutuellement exclusifs.

Réseau

Par défaut, le réseau est activé dans le sandbox. C'est nécessaire pour que les agents AI puissent communiquer avec leurs APIs (Anthropic, OpenAI, etc.). parcai supporte le filtrage par domaine via allowlist et blocklist. Configurez les domaines autorisés ou bloqués dans le fichier .parcai.json du projet. Avec --no-network, le profil sandbox passe de (allow network*) à (deny network*), bloquant tout accès réseau.
parcai --no-network

Chemins autorisés

Par défaut, parcai donne accès au clone du projet (lecture/écriture) et aux chemins système nécessaires au fonctionnement du shell (lecture seule) : • /usr/bin, /bin, /usr/sbin, /sbin — Binaires système • /opt/homebrew/bin, /usr/local/bin — Binaires Homebrew et locaux (macOS) • /usr, /lib, /etc — Bibliothèques et configuration système (lecture seule) Utilisez --allow pour ajouter des chemins en lecture seule, et --rw pour des chemins en lecture/écriture :
# Lecture seule sur un dataset
parcai --allow /data/shared

# Lecture/écriture sur un cache
parcai --rw /tmp/workspace

# Combinable
parcai --allow /data --rw /tmp/cache

Secrets protégés

Les répertoires suivants sont explicitement bloqués dans le sandbox. Cette protection est codée en dur et ne peut pas être désactivée : • ~/.ssh — Clés SSH • ~/.aws — Credentials AWS • ~/.gnupg — Clés GPG • ~/.config/gcloud — Credentials Google Cloud • ~/.kube — Configuration Kubernetes • ~/.docker — Credentials Docker • ~/.env — Variables d'environnement • ~/.netrc — Credentials réseau • ~/.npmrc — Credentials npm Tout le répertoire /Users est bloqué par défaut, puis seul le clone du projet est autorisé en écriture. Avec --secrets, un proxy MITM local remplace en plus les vrais tokens par des faux dans le sandbox.

Variables d'environnement dans le sandbox

parcai définit plusieurs variables d'environnement à l'intérieur du sandbox : • PARCAI=1 — Indique que le shell tourne dans un sandbox parcai • PARCAI_BACKEND=sandbox-exec — Backend d'isolation utilisé • PARCAI_HOST_CWD=<chemin> — Chemin original du projet sur l'hôte • HOME=<home> — Préservé pour l'accès aux outils CLI • ZDOTDIR=<clone> — Pointe vers le clone pour les fichiers de config shell • PS1=[parcai] %1~ %# — Prompt modifié pour indiquer le sandbox • PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin — Restreint aux binaires système

Filtrage réseau par domaine

parcai permet de contrôler finement les domaines accessibles depuis le sandbox via une allowlist (seuls ces domaines sont autorisés) ou une blocklist (ces domaines sont bloqués). La configuration se fait dans le fichier .parcai.json à la racine du projet :
{
  "network": {
    "allowlist": ["api.anthropic.com", "api.openai.com"],
    "blocklist": ["evil.example.com"]
  }
}

.parcai.json

Le fichier .parcai.json à la racine du projet permet de définir une configuration par projet. Il est lu automatiquement au lancement de parcai. Options disponibles : • network.allowlist — Liste de domaines autorisés (si défini, seuls ces domaines sont accessibles) • network.blocklist — Liste de domaines bloqués • secrets — Activer le masquage des secrets par défaut (booléen) • allow — Liste de chemins supplémentaires en lecture seule • rw — Liste de chemins supplémentaires en lecture/écriture
{
  "secrets": true,
  "allow": ["/data/shared"],
  "rw": ["/tmp/workspace"],
  "network": {
    "allowlist": ["api.anthropic.com"]
  }
}

Persistance de session

parcai persiste l'état des sessions entre les exécutions. Les données de session sont stockées dans ~/.parcai/sessions/<hash>/, où <hash> est un identifiant unique dérivé du chemin du projet. Cela permet de reprendre là où vous en étiez sans reconfigurer le sandbox à chaque lancement. Les fichiers temporaires, l'historique du shell et l'état du clone sont préservés entre les sessions.