Que fait cplt ?
Wrapper bac à sable pour les agents de codage IA. Exécute GitHub Copilot CLI, OpenCode, Google Gemini CLI, Pi ou un shell simple dans un bac à sable au niveau du noyau, permettant à l'agent de travailler sur votre projet sans accéder à vos secrets.
Prérequis
- Linux avec noyau 4.19 ou ultérieur (pour les namespaces d'utilisateur)
bubblewrap(bwrap) installé- Une installation existante de l'outil de codage à encapsuler (par exemple,
gh copilot)
Installation
git clone https://github.com/navikt/cplt.git
cd cplt
./install.sh
Utilisation
cplt <outil> [arguments...]
Exemple :
cplt gh copilot suggest "Créer une API REST en Python"
Ou pour un shell simple :
cplt bash
Outils pris en charge
gh copilot– GitHub Copilot CLIopencode– OpenCodegoogle-gemini– Google Gemini CLIpi– Pibash– Shell standard
Comment ça marche
Le skill utilise bubblewrap pour créer un bac à sable avec des namespaces d'utilisateur, de réseau, de pid et de montage. Le système de fichiers de l'hôte est monté en lecture seule, à l'exception du répertoire de travail du projet qui est monté en lecture-écriture. Les variables d'environnement sensibles (par exemple, AWS_ACCESS_KEY_ID, GITHUB_TOKEN) sont masquées dans le bac à sable.
Sécurité
- Isolation au niveau du noyau via
bubblewrap - Accès réseau limité (peut être désactivé)
- Aucun accès aux fichiers de configuration de l'utilisateur (par exemple,
~/.ssh,~/.aws) - Les modifications du système de fichiers à l'intérieur du bac à sable sont perdues à la sortie
Configuration
Les variables d'environnement suivantes contrôlent le comportement :
CPLT_NETWORK– Mettre à"false"pour désactiver l'accès réseau (par défaut :"true")CPLT_WORKDIR– Répertoire de travail à monter (par défaut : répertoire courant)CPLT_EXTRA_MOUNTS– Chemin séparé par des virgules vers des répertoires supplémentaires à monter
Dépannage
- Vérifiez que
bwrapest installé :which bwrap - Assurez-vous que les namespaces d'utilisateur ne sont pas désactivés dans votre noyau :
cat /proc/sys/kernel/unprivileged_userns_clone - Consultez les logs :
cplt --debug <outil>
Licence
Projet open source sous licence MIT.