navikt/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.

Qu'est-ce que cplt ?

Ce skill fournit un wrapper bac à sable sécurisé pour les agents de codage IA comme ceux exécutés par Claude Code, Cursor, ou Codex. Il exécute des outils de codage populaires (GitHub Copilot CLI, OpenCode, Google Gemini CLI, Pi) ou un shell simple dans un environnement isolé au niveau du noyau. Cela permet à l'agent d'interagir avec vos fichiers de projet sans pouvoir accéder à des informations sensibles telles que des tokens API, des clés SSH ou des variables d'environnement. Le skill est particulièrement utile pour des projets où la sécurité des secrets est critique, offrant une couche de protection supplémentaire contre les accès non autorisés. Il fonctionne en configurant un bac à sable via des mécanismes de noyau Linux (comme les namespaces et les cgroups) et en redirigeant les commandes de l'agent dans cet environnement. Les développeurs peuvent ainsi utiliser des agents IA en toute confiance, sachant que leurs secrets restent protégés.

Compatible avec~Claude Code~Codex CLI~Cursor✓Gemini CLI✓OpenCode
npx skills add navikt/cplt

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

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 CLI
  • opencode – OpenCode
  • google-gemini – Google Gemini CLI
  • pi – Pi
  • bash – 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 bwrap est 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.

Skills associés