¿Qué hace cplt?
Contenedor de pruebas (sandbox) para agentes de codificación de IA. Ejecuta la CLI de GitHub Copilot, OpenCode, la CLI de Google Gemini, Pi o un shell básico dentro de un sandbox a nivel de kernel, permitiendo que el agente trabaje en tu proyecto sin acceder a tus secretos.
Visión general
navikt/cplt te permite ejecutar agentes de codificación de IA de manera aislada en tu máquina local. El agente de IA puede modificar archivos en tu proyecto y ejecutar comandos, pero no puede leer tus claves SSH, secretos ni otros archivos sensibles fuera del directorio del proyecto.
Cómo funciona
- El agente de IA se ejecuta dentro de un contenedor Docker con un perfil de seguridad
seccomprestrictivo. - El contenedor solo tiene acceso de lectura al directorio del proyecto y acceso de escritura a un subdirectorio específico.
- Las variables de entorno sensibles (como
SSH_AUTH_SOCK,AWS_*,GITHUB_TOKEN) se eliminan automáticamente del entorno del contenedor. - El agente de IA puede ejecutar comandos y scripts dentro del contenedor, pero no puede escapar del sandbox.
Plataformas compatibles
- Linux (recomendado)
- macOS (con Docker Desktop)
- Windows (con WSL2 y Docker Desktop)
Instalación
git clone https://github.com/navikt/cplt.git
cd cplt
./install.sh
Uso
cplt run --agent copilot --project /path/to/project
Variables de entorno
| Variable | Descripción | Valor predeterminado |
|---|---|---|
CPLT_IMAGE | Imagen Docker a usar | navikt/cplt:latest |
CPLT_MOUNT | Ruta del proyecto a montar | Directorio actual |
CPLT_SECRETS | Archivo de secretos a excluir | ~/.ssh |
Ejemplos
Ejecutar GitHub Copilot CLI
cplt run --agent copilot --project ./my-app
Ejecutar OpenCode
cplt run --agent opencode --project ./my-app
Ejecutar Google Gemini CLI
cplt run --agent gemini --project ./my-app
Seguridad
- El sandbox se ejecuta con un perfil
seccompque permite solo las llamadas al sistema esenciales. - Los secretos del host se montan de solo lectura y el agente no puede modificarlos.
- El contenedor se ejecuta con un usuario no root para mayor aislamiento.
Solución de problemas
Si el agente no puede iniciarse, verifica:
- Docker está instalado y en ejecución.
- El proyecto existe y es accesible.
- No hay conflictos con otros contenedores.
Licencia
MIT