clampdown CLI
Claude Code, Codex, OpenCode и pi работают в усиленном контейнере: файлы только проекта, сеть по белому списку, ключи в прокси.
- 130 ★ репозитория
- Последний коммит
Широкий доступ
Почему такой уровень
- Прокси-контейнер хранит реальные API-ключи Anthropic, OpenAI и других провайдеров.
- Sidecar запускается с расширенными привилегиями и управляет сетью и контейнерами на машине.
Установка
- Работает в
Ручная установка
git clone https://github.com/89luca89/clampdown
cd clampdown
make all
make installБлок Install из README: команды собирают образы и кладут бинарный файл в `~/.local/bin/clampdown`.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Прокси-контейнер хранит реальные API-ключи Anthropic, OpenAI и других провайдеров.
- Sidecar запускается с расширенными привилегиями и управляет сетью и контейнерами на машине.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
clampdown запускает кодинг-агента внутри контейнерной песочницы и считает сам процесс агента недоверенным. Доступ к файлам ограничен рабочей папкой проекта, исходящая сеть закрыта по умолчанию и открыта только для API, нужных агенту, а каждый контейнер с инструментами, который агент порождает, получает такие же ограничения. Реальные API-ключи агент не видит. Их держит отдельный прокси-контейнер без оболочки и записываемой файловой системы, агенту выдается заглушка `sk-proxy` и адрес прокси. Ограничения накладывают Landlock, seccomp и правила `iptables` снаружи процесса агента, поэтому они действуют, даже если агент проигнорировал инструкции. Поддерживаются четыре агента: `clampdown claude`, `clampdown codex`, `clampdown opencode` и `clampdown pi`. Каждый сеанс пишет структурный журнал аудита.
Для кого. Разработчикам на Linux или macOS, которые не хотят давать агенту доступ к домашней папке, SSH-ключам и частным сетям при запуске чужих команд.
Подходит, если
- Агент читает чужой репозиторий, и внедрение инструкций в промпт нельзя исключить.
- Ключи Anthropic или OpenAI не должны попадать в окружение процесса агента.
- Агенту нужно собирать и тестировать проект в контейнерах, но без доступа к частным сетям.
- После сессии требуется журнал запросов к API и событий для разбора инцидента.
- Один и тот же способ изоляции нужен для Claude Code, Codex и OpenCode.
Не подходит, если
- Машина на macOS с Docker Desktop: его файловая система ломает Landlock, и инструмент не поддерживает такую связку.
- Ядро Linux старше 6.2 без возможности обновления.
- Нужна быстрая правка без сборки образов и контейнеров: сеанс стартует тяжелее обычного запуска агента.
Пример запроса к агенту
Запусти Claude Code в песочнице clampdown для этого проекта и покажи, к каким доменам он обращался за сессию.Ограничения
Установка идет из исходников: `make all` собирает шесть образов и бинарный файл, для сборки нужен Go 1.23. Ядро Linux должно быть не старше 6.2, потому что Landlock V3 обязателен, а для полного набора защит рекомендовано 6.12. Запуск отказывается стартовать при небезопасных sysctl, например `kernel.kptr_restrict` или `vm.unprivileged_userfaultfd`. Нужны `podman` без прав `root` или Docker. На macOS работают `podman machine` или `colima`, но не Docker Desktop. Подписка ChatGPT для Codex копируется из `~/.codex/auth.json`, а Bedrock и Vertex в pi через прокси не идут. Sidecar работает с привилегиями, так что защита опирается на его корректность.
Как отключить. Остановите сеанс командой `clampdown stop -s <id сеанса>`, удалите контейнеры через `clampdown delete -s <id сеанса>` и очистите кэш проекта командой `clampdown prune`. Бинарный файл лежит в `~/.local/bin/clampdown`.
Частые вопросы
Как установить clampdown?
Склонируйте репозиторий и выполните `make all`, затем `make install`. Бинарный файл появится в `~/.local/bin/clampdown`. Готовых пакетов в README нет.
Как агент получает доступ к API, если ключа у него нет?
Агент отправляет запросы на локальный прокси с заглушкой `sk-proxy`, а прокси подставляет реальный ключ и пересылает запрос провайдеру. Прямое обращение к API с заглушкой даст 401.
Как выйти из сеанса и вернуться?
Нажмите `ctrl+]`: сеанс продолжит работать в фоне. Вернуться можно командой `clampdown attach -s <id сеанса>`, список показывает `clampdown list`.
Какую сеть видит агент?
Только домены из белого списка, нужные самому агенту. Контейнеры с инструментами имеют выход в публичный интернет, но частные подсети для них закрыты. Обе политики настраиваются флагами `--agent-policy` и `--pod-policy`.
Работает ли clampdown на Mac?
Да, через `podman machine` или `colima`: контейнеры запускаются в Linux-виртуалке с полным набором защит. Docker Desktop не поддерживается.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыКоманда safehouse запускает Claude Code, Codex и другие агенты в песочнице macOS: файлы закрыты по умолчанию, нужные папки открываются флагами
Песочница для ИИ-агентов на Linux и macOS без контейнеров: файлы, сеть и системные вызовы закрыты, пока вы не откроете их явно
Локальная панель для Claude Code, Codex CLI и OpenCode: что грузит агент, сколько это токенов, и проверка MCP-серверов
CLI-песочница для AI-агентов без контейнеров и демонов: запускает Claude Code, Codex или OpenCode с ограниченным доступом к файлам, сети и учетным данным
AgentShield проверяет папку .claude на ключи в открытом виде, широкие разрешения, опасные хуки и небезопасные MCP-серверы и ставит оценку от A до F
Набор из полусотни субагентов Claude Code для авторизованного пентеста: планирование, разведка, поиск и цепочки эксплойтов, пост-эксплуатация, детект и отчеты
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| clampdown (эта карточка) | нет | 130 | |
| nono | нет | 4 872 | ограничивает агента без контейнеров и демонов; clampdown строит контейнеры с прокси ключей и проверкой вложенных запусков |
| Agent Safehouse | нет | 2 136 | использует песочницу macOS; clampdown опирается на Landlock, seccomp и `iptables` в Linux, а на Mac запускается через виртуальную машину |
Коротко о README
Раздел о модели угроз исходит из того, что агент может быть захвачен через внедрение инструкций в промпт или джейлбрейк, поэтому защита должна действовать вне его процесса. Дальше описаны четыре типа контейнеров (sidecar, прокси, агент, инструменты), параметры Landlock и seccomp, сетевые политики, настройка через `config.json` и `.clampdownrc` и формат журнала аудита.