
Ваш агент — это угроза безопасности, поэтому относитесь к нему соответственно. 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 применяет патчи к вашему реальному проекту, сохраняя отдельные коммиты, и ваши оригиналы не меняются, пока вы не примените изменения.--network-isolated ограничивает исходящий трафик только API-эндпоинтами агента и разрешёнными вами доменами. --network-none полностью убирает сеть.См. Безопасность для полной модели, включая честное описание ограничений.
Скачайте архив для вашей платформы со страницы последнего релиза, извлеките бинарный файл 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.
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
Песочница
--env, --dir).--cpus, --memory) и проброс портов (--port).clonefile), reflink для каждого файла на файловых системах Linux, которые их поддерживают (btrfs, XFS). Файловые системы без reflink (ext4) получают обычную копию..gitignore: всё, что игнорируется, НЕ копируется в песочницу (практика безопасности для учётных данных разработчика на диске).Учётные данные
Рабочий процесс
.patch, выбор коммитов по ref или сначала --dry-run.yoloai run --prompt ... --rm, с выводом --json для каждой команды.Интеграция
shell для всего остального.--vscode-tunnel).yoloai mcp serve позволяет внешнему агенту управлять песочницами как инструментами; yoloai mcp proxy запускает MCP-серверы внутри песочницы.yoloai x).~/.yoloai/ (перемещается с помощью --data-dir).Примечание: Tart предоставляет полноценную ВМ macOS, что позволяет запускать симуляторы внутри песочницы.
При желании можно обновить OCI-runtime для более сильной изоляции. Режимы gVisor доступны на docker и podman; режимы ВМ поставляются с бэкендом containerd.
# Использовать gVisor для всех новых песочниц
yoloai config set isolation container-enhanced
# Или для конкретной песочницы
yoloai new task . --isolation container-enhanced
Используйте yoloai system agents для вывода списка доступных агентов.
Публичная бета. Основной рабочий процесс стабилен и используется ежедневно; интерфейсы могут меняться между релизами 0.x, и каждое критическое изменение задокументировано в BREAKING-CHANGES. Отзывы приветствуются.
| Бэкенд | Поддерживаемые хосты | Зависимости |
|---|
| 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) |
| Режим | Описание |
|---|
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: лёгкая изоляция ВМ |
| Режим | Описание |
|---|
claude | Запускает Claude Code через API-ключ или учётные данные подписки (по умолчанию) |
codex | Запускает Codex через API-ключ или учётные данные подписки |
gemini | Запускает Gemini CLI через API-ключ или учётные данные подписки |
aider | Запускает Aider (ваша конфигурация копируется внутрь) |
opencode | Запускает OpenCode (ваша конфигурация копируется внутрь) |
shell | Запускает оболочку tmux со всеми учётными данными агентов |
idle | Запускает процесс ожидания для поддержки MCP-проксирования |