
yoloai v0.11.0
Ваш агент — это угроза безопасности, поэтому относитесь к нему соответственно. yoloAI правильно реализует песочницу для ИИ-агентов.
yoloAI
Песочница для ИИ-агентов программирования. Никакой усталости от разрешений, никаких учётных данных внутри песочницы, никаких изменений в вашем проекте, пока вы их не одобрите.
ИИ-агенты программирования работают лучше всего без ограничений, и это ужасный способ запускать их на вашей реальной машине. yoloAI предоставляет агенту одноразовую песочницу, где он может редактировать что угодно и запускать что угодно, без присмотра. Ваш проект, ваши учётные данные и ваша сеть остаются под вашим контролем. Когда агент закончит работу, просмотрите diff и примените то, что хотите сохранить.
Вы Песочница Ваш проект
│ │ │
├─ yoloai new fix-bug . ├─ копия проекта в песочнице │
│ │ │
├─ << ваши промпты >> ├─ агент работает свободно │
│ │ (без запросов разрешений) │
│ │ │
├─ yoloai diff fix-bug ├─ показывает, что изменилось │
│ │ │
├─ yoloai apply fix-bug │ ├─ применены патчи
│ (вы выбираете, какие) │ │
│ │ │
├─ yoloai destroy fix-bug ├─ уничтожает песочницу │
Зачем?
Запросы разрешений существуют, потому что агенты ошибаются. После сотого одобрить/отклонить вы перестаёте их читать, а --dangerously-skip-permissions — это один запутавшийся агент от очень плохого дня. yoloAI уменьшает радиус поражения до тех пор, пока запросы не станут ненужными:
- Ваши файлы в безопасности. Агент работает с изолированной копией вашего проекта.
diffпоказывает точно, что изменилось,applyприменяет патчи к вашему реальному проекту, сохраняя отдельные коммиты, и ваши оригиналы не меняются, пока вы не примените изменения. - Ваши секреты в безопасности. Песочница запускается из минимального, локально собранного окружения; переменные окружения хоста остаются на хосте. Учётные данные поступают как монтируемые файлы только для чтения, никогда — как переменные окружения. Там, где применяется брокеринг учётных данных (Claude, Gemini и Codex сегодня, включён по умолчанию), API-ключ полностью остаётся на стороне хоста: локальный прокси-сервер внедряет его по пути к провайдеру, так что даже полностью скомпрометированный агент не сможет ничего выкрасть.
- Ваша сеть принадлежит вам.
--network-isolatedограничивает исходящий трафик только API-эндпоинтами агента и разрешёнными вами доменами.--network-noneполностью убирает сеть. - Ваша машина изолирована. Выбирайте уровень комфорта: от namespace'ов Linux через gVisor до аппаратных ВМ.
См. Безопасность для полной модели, включая честное описание ограничений.
Установка
Готовый бинарный файл (рекомендуется)
Скачайте архив для вашей платформы со страницы последнего релиза, извлеките бинарный файл yoloai и поместите его в PATH:
# Linux x86-64 (при необходимости замените на linux_arm64 / darwin_amd64 / darwin_arm64).
# Установите VERSION на тег, указанный на странице последнего релиза по ссылке выше, без
# ведущей "v" — например, VERSION=1.2.3 для тега v1.2.3.
VERSION=X.Y.Z
curl -fsSL "https://github.com/kstenerud/yoloai/releases/download/v${VERSION}/yoloai_${VERSION}_linux_amd64.tar.gz" \
| tar -xz yoloai
sudo install yoloai /usr/local/bin/
Каждый архив также содержит автодополнение для оболочки, LICENSE и журнал изменений. Релизы подписаны с помощью cosign (checksums.txt) и имеют подтверждение происхождения сборки GitHub (gh attestation verify yoloai_… --repo kstenerud/yoloai). К каждому релизу также прилагаются пакеты Debian/RPM.
Homebrew (macOS / Linux)
brew install --cask kstenerud/tap/yoloai
Использование go install
# Последний релиз
go install github.com/kstenerud/yoloai/cmd/yoloai@latest
# Последняя версия для разработки (нестабильная)
go install github.com/kstenerud/yoloai/cmd/yoloai@main
Требуется Go 1.26+. Бинарный файл размещается в $GOPATH/bin (обычно ~/go/bin).
Из исходного кода
git clone https://github.com/kstenerud/yoloai.git
cd yoloai
git checkout "$(git describe --tags --abbrev=0)" # тег последнего релиза; или оставайтесь на main для версии для разработки
make build
sudo install yoloai /usr/local/bin/
Это один бинарный файл Go без зависимостей времени выполнения, кроме выбранного вами бэкенда. При первом запуске yoloAI собирает свой базовый образ и создаёт ~/.yoloai/ (или любой каталог, указанный через --data-dir).
Быстрый старт
Неинтерактивный режим
# Аутентификация (yoloAI автоматически подхватывает существующие учётные данные)
export ANTHROPIC_API_KEY=sk-ant-... # Claude Code
export GEMINI_API_KEY=... # Gemini CLI
# Или просто позвольте ему подхватить вашу уже аутентифицированную сессию
# 1. Запустите песочницу. Агент начинает работать немедленно, если вы указали промпт
yoloai new fix-bug ./my-project --prompt "исправь падающие тесты"
# 2. Посмотрите, что изменил агент
yoloai diff fix-bug
# 3. Примените нужные части к вашему реальному проекту
yoloai apply fix-bug
# 4. Удалите песочницу
yoloai destroy fix-bug
Интерактивный режим
yoloai new exploration ./my-project -a
# Вы внутри агента, работающего в tmux в песочнице.
# Ctrl-B, D для отсоединения.
# yoloai attach exploration для повторного подключения.
Итеративная работа
Для длительных сессий работайте в цикле: скажите агенту коммитить по мере работы и запускайте yoloai apply из другого терминала, когда захотите перенести готовые коммиты в ваш реальный проект. Каждое применение переносит только новые коммиты с момента последнего. Когда результат вас устраивает, отправьте изменения как обычно и уничтожьте песочницу. См. Руководство по использованию для полного рабочего процесса.
Демонстрация
Создание песочницы, отправка промпта агенту и применение результатов:
https://github.com/user-attachments/assets/9d6740b4-a34e-4253-82ec-cb0e4c7a8bd9
Возможности
Песочница
- Шесть бэкендов: Docker, Podman, containerd (Kata), Apple Container, Tart и Seatbelt. Работает на Linux, macOS и Windows (WSL2).
- Выбираемая сила изоляции для каждой песочницы: от runc через gVisor до ВМ Kata (QEMU или Firecracker).
- Сетевая политика для каждой песочницы: открытая, белый список или отсутствие сети.
- Минимальное окружение внутри песочницы. Всё с хоста — явное согласие (
--env,--dir). - Ограничения ресурсов (
--cpus,--memory) и проброс портов (--port). - Дешёвые копии рабочего каталога: клонирование всего дерева на macOS (APFS
clonefile), reflink для каждого файла на файловых системах Linux, которые их поддерживают (btrfs, XFS). Файловые системы без reflink (ext4) получают обычную копию. - Учитывается
.gitignore: всё, что игнорируется, НЕ копируется в песочницу (практика безопасности для учётных данных разработчика на диске).
Учётные данные
- Автоматически подхватывает существующие логины агентов: API-ключи, учётные данные подписки, связку ключей macOS.
- Брокеринг учётных данных оставляет API-ключ на стороне хоста (Claude, Gemini и Codex сегодня); учётные данные Aider и OpenCode доставляются как монтируемые файлы только для чтения.
Рабочий процесс
- Копирование/diff/apply с git, работающим на стороне песочницы, поэтому репозитории с фильтрами и хуками ведут себя корректно.
- Применяйте по-своему: воспроизведение коммитов (по умолчанию), сжатие в один патч, экспорт файлов
.patch, выбор коммитов по ref или сначала--dry-run. - Полный жизненный цикл: создание, подключение, остановка, перезапуск, ожидание, клонирование, сброс, уничтожение. Состояние агента переживает остановки и перезапуски.
- Безголовые одноразовые запуски для скриптов и CI:
yoloai run --prompt ... --rm, с выводом--jsonдля каждой команды. - Когда агент завершает работу, его панель tmux переходит в оболочку, чтобы вы могли осмотреть песочницу.
Интеграция
- Встроены Claude Code, Codex, Gemini CLI, Aider и OpenCode, плюс режим
shellдля всего остального. - VS Code: подключение к контейнеру или открытие Remote Tunnel изнутри песочницы (
--vscode-tunnel). - MCP в обоих направлениях:
yoloai mcp serveпозволяет внешнему агенту управлять песочницами как инструментами;yoloai mcp proxyзапускает MCP-серверы внутри песочницы. - Профили: образы и настройки по умолчанию для каждого проекта (Dockerfile + конфигурация, с наследованием).
- Расширения: добавляйте свои подкоманды как shell-скрипты в YAML-обёртке (
yoloai x). - Встраиваемость: CLI — это тонкий слой поверх публичного Go API.
- Один статический бинарный файл. Состояние хранится в
~/.yoloai/(перемещается с помощью--data-dir).
Поддерживаемая инфраструктура
Бэкенды песочниц
| Бэкенд | Поддерживаемые хосты | Зависимости |
|---|---|---|
| docker | Linux, macOS, Windows (WSL2) | Docker Engine, Docker Desktop или OrbStack |
| podman | Linux, macOS | Podman (brew install podman на macOS) |
| containerd | Linux | Kata Containers |
| apple | macOS (Apple Silicon) | Apple Container |
| tart | macOS (Apple Silicon) | Tart (brew install cirruslabs/cli/tart) |
| seatbelt | macOS (любой) | Нет (использует встроенный sandbox-exec) |
Примечание: Tart предоставляет полноценную ВМ macOS, что позволяет запускать симуляторы внутри песочницы.
Режимы изоляции
При желании можно обновить OCI-runtime для более сильной изоляции. Режимы gVisor доступны на docker и podman; режимы ВМ поставляются с бэкендом containerd.
| Режим | Описание |
|---|---|
container | По умолчанию runc: стандартные namespace'ы и cgroups Linux |
container-enhanced | Пользовательское ядро (gVisor/runsc): перехват системных вызовов, KVM не требуется |
container-privileged | Все capabilities, seccomp/AppArmor без ограничений. Используйте для Docker-in-Docker и Compose |
vm | Kata Containers (QEMU): аппаратная изоляция ВМ |
vm-enhanced | Kata + Firecracker microVM: лёгкая изоляция ВМ |
# Использовать gVisor для всех новых песочниц
yoloai config set isolation container-enhanced
# Или для конкретной песочницы
yoloai new task . --isolation container-enhanced
Агенты
| Режим | Описание |
|---|---|
claude | Запускает Claude Code через API-ключ или учётные данные подписки (по умолчанию) |
codex | Запускает Codex через API-ключ или учётные данные подписки |
gemini | Запускает Gemini CLI через API-ключ или учётные данные подписки |
aider | Запускает Aider (ваша конфигурация копируется внутрь) |
opencode | Запускает OpenCode (ваша конфигурация копируется внутрь) |
shell | Запускает оболочку tmux со всеми учётными данными агентов |
idle | Запускает процесс ожидания для поддержки MCP-проксирования |
Используйте yoloai system agents для вывода списка доступных агентов.
Узнать больше
- Руководство по использованию: команды, флаги, режимы рабочего каталога, конфигурация, безопасность
- Дорожная карта: предстоящие возможности
- Архитектура: навигация по коду для контрибьюторов
Статус
Публичная бета. Основной рабочий процесс стабилен и используется ежедневно; интерфейсы могут меняться между релизами 0.x, и каждое критическое изменение задокументировано в BREAKING-CHANGES. Отзывы приветствуются.