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.