cplt CLI

cplt запускает ИИ-агентов в песочнице на уровне ядра: код правится, а ключи SSH и пуш в основную ветку остаются закрытыми.

  • 148 ★ репозитория
  • Последний коммит
  • MIT
CLI

Расширенный доступ

Почему такой уровень

  • Песочница сужает угрозу, но на Linux часть защит неполная, а `--allow-browser` и доступ к Keychain расширяют права агента.
  • Установка через `curl | bash` и подключение apt-репозитория требуют доверия к издателю.
Все причины и проверки

navikt/cplt

Установка

Ручная установка

brew install navikt/tap/cplt

Первая команда раздела Install из README, для macOS. На Debian и Ubuntu есть пакет через apt, на других дистрибутивах установочный скрипт.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Песочница сужает угрозу, но на Linux часть защит неполная, а `--allow-browser` и доступ к Keychain расширяют права агента.
  • Установка через `curl | bash` и подключение apt-репозитория требуют доверия к издателю.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

cplt, CLI-обертка на Rust, запускает Claude Code, Copilot CLI, OpenCode, Gemini CLI, `goose` и любую оболочку внутри песочницы. На macOS работает Apple Seatbelt через `sandbox-exec`, на Linux связка Landlock, `seccomp-BPF` и по желанию Bubblewrap. Агент читает и пишет проект, но не видит `~/.ssh`, `~/.aws`, `.env*`, файлы `.pem` и `.key`. Охрана команд `git` и `gh` блокирует пуш в основную ветку, принудительный пуш, слияние PR и релизы. Исходящий трафик ограничен портом 443, а прокси с белыми и черными списками доменов пишет журнал запросов. Политика репозитория лежит в `.cplt.toml` и коммитится вместе с кодом.

Для кого. Разработчикам и командам, которые запускают агентов на рабочих ноутбуках с доступом к ключам, и тем, кто отвечает за безопасность таких запусков.

Подходит, если

  • Агента запускают на репозитории с секретами, а утечку ключей допускать нельзя.
  • Команде нужна единая политика доступа агентов, закоммиченная в репозиторий.
  • Агент ставит зависимости из интернета, а подмененный ввод или вредоносный MCP-сервер могут направить его на кражу ключей.
  • Пуш в `main` и слияние PR с агентской сессии должны быть закрыты.
  • Любую команду, например `npm install`, хочется выполнить в песочнице отдельно от агента.

Не подходит, если

  • Нужен запуск под Windows без WSL2: нативного бэкенда песочницы нет.
  • Требуется полная изоляция уровня виртуальной машины или контейнера.
  • Сборка должна ставить глобальные инструменты вроде `bun install -g` или `mise use -g` в песочнице.

Пример запроса к агенту

Запусти Claude Code через cplt в этом репозитории, покажи, какие пути и домены заблокированы, и выполни `cplt doctor`.

Ограничения

Песочница не абсолютна. На macOS `sandbox-exec` объявлен устаревшим, и Apple может убрать его в будущей версии. На Linux нужно ядро 5.13 или новее с Landlock, фильтрация TCP-портов начинается с версии 6.7, а защита `.env` внутри проекта без Bubblewrap ядром не обеспечивается. Landlock не умеет закрывать подпуть внутри разрешенного дерева, поэтому `.git/config` и `.gitmodules` остаются доступными для записи. Порт 443 открыт, и через него доступны SSH-серверы вроде `ssh.github.com:443`. Флаг `--allow-browser` открывает запуск любых приложений в обход песочницы. Допуск к Keychain на macOS не сужается до одной записи.

Как отключить. Уберите алиас или функцию-обертку, созданную через `cplt --shell-install`, и запускайте агента напрямую. Пакет удаляется тем же менеджером, которым ставили: `brew uninstall cplt` или `sudo apt remove cplt`. Файл `.cplt.toml` в репозиториях удалите вручную.

Частые вопросы

Какие агенты поддерживает cplt?

GitHub Copilot CLI, OpenCode, Gemini CLI, Antigravity CLI, Pi, Claude Code, `goose`, DeepSeek Harness и любую оболочку через `--agent shell`. Выбор делается флагом `--agent`.

Работает ли cplt в Windows?

Нативно нет. Запускайте его внутри WSL2: там это обычная установка Linux, а ядро Microsoft содержит Landlock.

Как запустить обычную команду в песочнице без агента?

Выполните `cplt exec -- npm install` или `cplt exec -c "npm install && npm test"` для составных команд. Можно сделать алиас `alias npm="cplt exec -- npm"`.

Можно ли только предупреждать, а не блокировать пуши?

Да. `cplt config set git_guard.mode warn` переводит охрану git в режим предупреждений, а `--no-git-guard` отключает ее целиком.

Чем cplt отличается от песочницы Codex CLI?

cplt добавляет фильтрацию исходящих доменов через прокси, файл политики `.cplt.toml` с подтверждением доверия и поддержку девяти агентов. У Codex CLI есть режимы `read-only` и `workspace-write`, а в cplt такой матрицы режимов пока нет.

Обсуждение

Вопросов и отзывов пока нет.

Claude Code, Codex, OpenCode и pi работают в усиленном контейнере: файлы только проекта, сеть по белому списку, ключи в прокси.

CLIШирокий доступ131Звезды репозитория

CLI на Go запускает агента в песочнице ОС: скиллы и секреты доступны через мост, а файлы и сеть изолированы.

CLIРасширенный доступ55Звезды репозитория
Официальный

Fence запускает команды и агентов вроде Claude Code в песочнице: сеть блокирована по умолчанию, доступ к файлам и команды задает конфигурация

CLIРасширенный доступ1 тыс.Звезды репозитория

Локальный страж для кодовых агентов: блокирует запись секретов и принудительный пуш в main, предупреждает об опасных командах.

CLIРасширенный доступ156Звезды репозитория

Движок авторизации для агентов: каждое действие получает ответ allow, deny, human_review или compute, решения пишутся в журнал

MCP-серверРасширенный доступ75Звезды репозитория

Команда safehouse запускает Claude Code, Codex и другие агенты в песочнице macOS: файлы закрыты по умолчанию, нужные папки открываются флагами

CLIРасширенный доступ2,1 тыс.Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйЗвезды репозиторияГлавное отличие
cplt (эта карточка)нет148
nonoнет4 945nono изолирует процессы агентов отдельным механизмом; cplt добавляет охрану `git` и `gh` и командный прокси с доменными списками
Agent Safehouseнет2 149Agent Safehouse ограничивает агента на macOS; cplt работает и на Linux через Landlock и держит политику в `.cplt.toml`

Коротко о README

Установка через Homebrew, `mise`, apt или `install.sh`. Режимы проверяются командой `cplt doctor`, а `cplt --print-profile` печатает полный профиль SBPL.

Бейдж для README

Сообщить о проблеме