Отправляй код в production — на автопилоте.
Агент с открытым исходным кодом, который живёт на ваших машинах круглосуточно, следит за работой приложений и беспокоит человека только при крайней необходимости. Все преимущества PaaS — без привязки к платформе.
Попробуй Stakpak прямо сейчас
curl -sSL https://stakpak.dev/install.sh | sh # установить Stakpak
stakpak init # разобраться в приложениях и технологическом стеке
stakpak autopilot up # запустить автономного агента в фоне 24/7
Большинству AI-агентов нельзя доверять DevOps. Одна ошибка — и production лежит. Stakpak устроен иначе:
-
Подстановка секретов (Secret Substitution) — LLM работает с вашими учётными данными, ни разу их не видя
-
Ограничители Warden (Warden Guardrails) — политики на уровне сети блокируют деструктивные операции ещё до их запуска
-
Встроенные DevOps-плейбуки (DevOps Playbooks Baked-in) — тщательно подобранная библиотека DevOps-знаний в виде Rulebook-ов
Генерируй инфраструктурный код, отлаживай Kubernetes, настраивай CI/CD и автоматизируй развёртывания — не передавая LLM ключи от production.
🤖 Автопилот (автономный режим 24/7)
Используй новые псевдонимы жизненного цикла для запуска, остановки и старта одной командой:
stakpak up # псевдоним для: stakpak autopilot up
stakpak down # псевдоним для: stakpak autopilot down
Можно также использовать канонические подкоманды:
stakpak autopilot up
stakpak autopilot status
stakpak autopilot logs
stakpak autopilot down
stakpak autopilot doctor
Предварительные требования для автопилота
Перед запуском автопилота на удалённой виртуальной машине:
-
Docker должен быть установлен и доступен текущему пользователю
-
Рекомендуется не менее 2 ГБ ОЗУ для надёжной работы автопилота и sandbox-запусков
-
На небольших Linux-хостах настоятельно рекомендуется включить swap
-
Пользовательские службы Linux могут требовать linger, чтобы продолжать работу после выхода из системы
stakpak up теперь запускает предварительные проверки перед стартом, а stakpak autopilot doctor можно использовать как проверку готовности к развёртыванию перед первым запуском:
stakpak autopilot doctor
stakpak up
Подробнее: cli/README.md
Единая конфигурация (профили и настройка автопилота)
-
~/.stakpak/config.toml— поведение профилей (model,allowed_tools,auto_approve,system_prompt,max_turns, учётные данные провайдера) -
~/.stakpak/autopilot.toml— параметры среды выполнения (schedules,channels, маршруты уведомлений, настройки сервиса/сервера)
Используй profile = "name" в расписаниях и каналах, а само поведение описывай внутри определений профиля. Профили управляют тем, как ведёт себя агент: модель, разрешённые инструменты, автоодобрение, системный промпт, максимальное число шагов, учётные данные провайдера. Маршруты уведомлений определяют только, куда доставляются сообщения.
Профили расписаний и каналов намеренно разделены:
-
--profile monitoringдля расписания: поведение для запусков по этому расписанию -
--profile opsдля канала: поведение для сессий, запущенных из входящих сообщений Slack/Telegram/Discord -
--target "#ops"для уведомления: куда отправляются уведомления от расписания; не влияет на выбор модели или инструментов
Везде в маршрутизации уведомлений используются два слова:
-
channel— транспорт, напримерslack,telegramилиdiscord -
target— назначение внутри этого транспорта, например#opsв Slack илиC1234567890
autopilot channel add … --target задаёт маршрут уведомлений по умолчанию. Расписания наследуют его, если не указан --notify-target или --notify-channel.
# маршрут уведомлений по умолчанию: slack:#ops
stakpak autopilot channel add slack --bot-token "$SLACK_BOT_TOKEN" --app-token "$SLACK_APP_TOKEN" --profile ops --target "#ops"
# расписание использует профиль monitoring и наследует маршрут по умолчанию
stakpak autopilot schedule add health --cron '*/5 * * * *' --prompt 'Check health' --profile monitoring
# расписание использует профиль monitoring, но уведомляет другой Slack-канал
stakpak autopilot schedule add deploy-watch --cron '*/15 * * * *' --prompt 'Watch deploys' --profile monitoring --notify-target "#deploys"
В ~/.stakpak/autopilot.toml та же конфигурация выглядит так:
[notifications]
channel = "slack"
target = "#ops"
[[schedules]]
name = "health"
cron = "*/5 * * * *"
prompt = "Check health"
profile = "monitoring"
[[schedules]]
name = "deploy-watch"
cron = "*/15 * * * *"
prompt = "Watch deploys"
profile = "monitoring"
notify_target = "#deploys"
Публичные имена каналов Slack вида #ops принимаются там, где Slack их поддерживает. Для приватных каналов, личных сообщений и скриптов надёжнее использовать идентификаторы каналов.
Полное руководство по настройке: cli/README.md
🔒 Повышенная безопасность
-
Взаимный TLS (mTLS) — сквозное шифрование MCP
-
Динамическая подстановка секретов (Dynamic Secret Substitution) — AI может читать, записывать и сравнивать секреты, не видя их реальных значений
-
Безопасная генерация паролей (Secure Password Generation) — криптографически стойкие пароли с настраиваемой сложностью
-
Режим приватности (Privacy Mode) — скрывает чувствительные данные, такие как IP-адреса и идентификаторы AWS-аккаунтов
🛠️ Создан для DevOps-задач
-
Асинхронное управление задачами (Asynchronous Task Management) — запускай фоновые команды вроде проброса портов и серверов с полноценным отслеживанием и возможностью отмены
-
Потоковая передача прогресса в реальном времени (Real-time Progress Streaming) — долгие процессы (сборки Docker, развёртывания) транслируют обновления по мере выполнения
-
Индексирование инфраструктурного кода (Infrastructure Code Indexing) — автоматическое локальное индексирование и семантический поиск по Terraform, Kubernetes, Dockerfile и GitHub Actions
-
Агент для поиска документации (Documentation Research Agent) — встроенный веб-поиск по технической документации, облачным провайдерам и фреймворкам
-
Субагенты (Subagents) — специализированные агенты исследования для анализа кода и sandbox-анализа с разными уровнями доступа к инструментам (включается флагом
--enable-subagents) -
Пакетное подтверждение (Bulk Message Approval) — одобряй несколько вызовов инструментов сразу для эффективного выполнения рабочих процессов
-
Обратимые файловые операции (Reversible File Operations) — все изменения файлов автоматически резервируются с возможностью восстановления
🧠 Адаптивный интеллект
-
Rulebook-и (Rule Books) — настраивай поведение агента с помощью внутренних стандартных операционных процедур (SOP), плейбуков и корпоративных политик
-
Постоянные знания (Persistent Knowledge) — агент учится в ходе взаимодействия, запоминает инциденты, ресурсы и детали окружения, чтобы адаптироваться к вашему рабочему процессу
Установка
Все варианты установки (Linux, macOS, Windows)
Homebrew (Linux и macOS)
brew tap stakpak/stakpak
brew install stakpak
Для обновления:
brew update
brew upgrade stakpak
Бинарный релиз
Скачай последний бинарник для своей платформы из GitHub Releases.
Docker
Образ включает самые популярные CLI-инструменты, которые могут понадобиться агенту для повседневных DevOps-задач: docker, kubectl, aws cli, gcloud, azure cli и другие.
docker pull ghcr.io/stakpak/agent:latest
Использование
Можно использовать собственные API-ключи Anthropic или OpenAI, совместимый с OpenAI кастомный эндпоинт или API-ключ Stakpak.
Вариант А: запуск с API-ключом Stakpak (карта не нужна)
Просто запусти stakpak и следуй инструкциям — новый API-ключ будет создан автоматически.
stakpak
|
Примечание
|
У пользователей браузера Brave могут возникнуть проблемы с автоматическими редиректами на порты localhost при создании API-ключа. Если это произошло — скопируй новый ключ из браузера и вставь его в терминал. |
Неинтерактивная настройка (CI/скрипты)
stakpak auth login --api-key $STAKPAK_API_KEY
Или задай переменную окружения
export STAKPAK_API_KEY=<mykey>
Просмотр текущего аккаунта (опционально)
stakpak account
Вариант Б: запуск без API-ключа Stakpak
Неинтерактивная настройка (CI/скрипты)
# Anthropic
stakpak auth login --provider anthropic --api-key $ANTHROPIC_API_KEY
# OpenAI
stakpak auth login --provider openai --api-key $OPENAI_API_KEY
# Gemini
stakpak auth login --provider gemini --api-key $GEMINI_API_KEY
Ручная настройка
Создай файл ~/.stakpak/config.toml с одной из следующих конфигураций:
Вариант 1: принеси свои ключи (BYOK — Bring Your Own Keys) — используй API-ключи Anthropic/OpenAI:
[profiles.byok]
provider = "local"
# Единое поле предпочтения модели
model = "anthropic/claude-sonnet-4-5"
# Встроенные провайдеры — учётные данные можно задать через переменные окружения
# (ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY)
[profiles.byok.providers.anthropic]
type = "anthropic"
api_key = "sk-ant-..."
[profiles.byok.providers.openai]
type = "openai"
api_key = "sk-..."
[profiles.byok.providers.gemini]
type = "gemini"
api_key = "..."
[settings]
Вариант 2: принеси свой LLM (Bring Your Own LLM) — используй локальный OpenAI-совместимый эндпоинт (например, Ollama, LM Studio):
[profiles.offline]
provider = "local"
# Модели кастомного провайдера используют формат: ключ_провайдера/имя_модели
model = "offline/qwen/qwen3-coder-30b"
# Ключ провайдера "offline" становится префиксом модели
[profiles.offline.providers.offline]
type = "custom"
api_endpoint = "http://localhost:11434/v1"
# api_key не обязателен для локальных провайдеров
[settings]
Вариант 3: смешай встроенные и кастомные провайдеры:
[profiles.hybrid]
provider = "local"
# Единое поле модели (с префиксом провайдера)
model = "anthropic/claude-sonnet-4-5"
[profiles.hybrid.providers.anthropic]
type = "anthropic"
# Использует переменную окружения ANTHROPIC_API_KEY
[profiles.hybrid.providers.offline]
type = "custom"
api_endpoint = "http://localhost:11434/v1"
[settings]
Stakpak применяет доступные обновления в фоне при интерактивном запуске. После применения обновления перезапусти все долгоживущие процессы Stakpak, чтобы использовался новый бинарник.
Затем запусти с нужным профилем:
stakpak --profile byok
# или
stakpak --profile offline
# или
stakpak --profile hybrid
Запуск TUI-интерфейса агента Stakpak
# Открыть TUI
stakpak
# Возобновить выполнение с контрольной точки
stakpak -c <checkpoint-id>
Запуск TUI-интерфейса агента Stakpak через Docker
docker run -it --entrypoint stakpak ghcr.io/stakpak/agent:latest
# для задач контейнеризации (необходимо смонтировать Docker-сокет)
docker run -it \
-v "/var/run/docker.sock":"/var/run/docker.sock" \
-v "{путь к приложению}":"/agent/" \
--entrypoint stakpak ghcr.io/stakpak/agent:latest
MCP-режимы
Stakpak можно использовать как защищённый MCP-прокси или открывать инструменты с повышенной безопасностью через MCP-сервер.
Инструменты MCP-сервера
-
Локальный режим (
--tool-mode local) — только файловые операции и выполнение команд (API-ключ не требуется) -
Удалённый режим (
--tool-mode remote) — инструменты генерации кода и поиска на основе AI (требуется API-ключ) -
Комбинированный режим (
--tool-mode combined) — локальные и удалённые инструменты вместе (по умолчанию, требуется API-ключ)
Запуск MCP-сервера
# Только локальные инструменты (API-ключ не нужен, mTLS включён по умолчанию)
stakpak mcp start --tool-mode local
# Только удалённые инструменты (AI-инструменты для DevOps)
stakpak mcp start --tool-mode remote
# Комбинированный режим (по умолчанию — все инструменты с полной защитой)
stakpak mcp start
# Отключить mTLS (НЕ рекомендуется для production)
stakpak mcp start --disable-mcp-mtls
Дополнительные флаги для MCP-сервера:
-
--disable-secret-redaction— не рекомендуется; выводит секреты в открытом виде в консоль -
--privacy-mode— скрывает дополнительные приватные данные, такие как IP-адреса и идентификаторы AWS-аккаунтов -
--enable-slack-tools— включает экспериментальные Slack-инструменты
MCP-прокси сервер
Stakpak также включает MCP-прокси сервер, который может мультиплексировать соединения с несколькими вышестоящими MCP-серверами через конфигурационный файл.
# Запустить MCP-прокси с автоматическим обнаружением конфигурации
stakpak mcp proxy
# Запустить MCP-прокси с явно указанным файлом конфигурации
stakpak mcp proxy --config-file ~/.stakpak/mcp.toml
# Отключить сокрытие секретов (НЕ рекомендуется — секреты будут выводиться в логах)
stakpak mcp proxy --disable-secret-redaction
# Включить режим приватности для сокрытия IP-адресов, идентификаторов аккаунтов и т.д.
stakpak mcp proxy --privacy-mode
Настройка внешних MCP-серверов
Внешние MCP-серверы настраиваются в mcp.toml (или mcp.json) и загружаются командой stakpak mcp proxy.
Порядок поиска конфигурационного файла:
-
~/.stakpak/mcp.tomlили~/.stakpak/mcp.json -
.stakpak/mcp.tomlили.stakpak/mcp.json(из текущего каталога) -
./mcp.tomlили./mcp.json
Добавление серверов через CLI:
# Добавить stdio MCP-сервер
stakpak mcp add context7 --command npx --args "-y,@upstash/context7-mcp"
# Добавить stdio MCP-сервер с переменными окружения (флаг --env повторяется)
stakpak mcp add internal-tools --command npx --args "-y,@acme/internal-mcp" --env "MCP_API_KEY=<token>" --env "MCP_REGION=us-east-1"
# Добавить HTTP MCP-сервер
stakpak mcp add github --url https://api.githubcopilot.com/mcp --headers "Authorization=Bearer <token>"
# Просмотр и управление серверами
stakpak mcp list
stakpak mcp get github
stakpak mcp disable github
stakpak mcp enable github
# Запустить прокси с настроенными внешними MCP
stakpak mcp proxy
Или опиши серверы прямо в ~/.stakpak/mcp.toml:
[mcpServers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
env = { MCP_API_KEY = "<token>", MCP_REGION = "us-east-1" }
[mcpServers.github]
url = "https://api.githubcopilot.com/mcp"
headers = { Authorization = "Bearer <token>" }
[mcpServers.optional]
command = "npx"
args = ["-y", "some-mcp-server"]
disabled = true
Используй disabled = true, чтобы сохранить сервер в конфигурации, не загружая его.
Протокол агентского клиента (Agent Client Protocol, ACP)
ACP — стандартизированный протокол, позволяющий AI-агентам интегрироваться непосредственно с редакторами кода, такими как Zed, обеспечивая бесшовную помощь в разработке на основе AI.
Что ACP даёт вместе со Stakpak
-
Чат с AI в реальном времени — диалог на естественном языке с контекстно-осведомлённым AI
-
Живой анализ кода (Live Code Analysis) — AI читает, понимает и изменяет кодовую базу в реальном времени
-
Выполнение инструментов (Tool Execution) — AI запускает команды, редактирует файлы, ищет по коду и выполняет задачи разработки
-
Сохранение сессий (Session Persistence) — контекст разговора сохраняется между сессиями редактора
-
Потоковые ответы (Streaming Responses) — ответы AI в реальном времени с отображением прогресса
-
Планы агента (Agent Plans) — визуальная разбивка задач и отслеживание прогресса
Установка и настройка
-
Установи Stakpak (если ещё не установлен)
-
Настрой редактор Zed — добавь в
~/.config/zed/settings.json:
{
"agent_servers": {
"Stakpak": {
"command": "stakpak",
"args": ["acp"],
"env": {}
}
}
}
-
Запусти ACP-агента:
stakpak acp
-
Используй в Zed — нажми «Ассистент» (✨) →
+→New stakpak thread
Управление Rulebook-ами
Управляй стандартными операционными процедурами (SOP), плейбуками и runbook-ами с помощью Stakpak Rulebooks. Rulebook-и настраивают поведение агента и дают контекстно-специфические инструкции.
# Показать все rulebook-и
stakpak rulebooks get
# или использовать короткий псевдоним
stakpak rb get
# Получить конкретный rulebook
stakpak rb get stakpak://my-org/deployment-guide.md
# Создать или обновить rulebook из markdown-файла
stakpak rb apply my-rulebook.md
# Удалить rulebook
stakpak rb delete stakpak://my-org/old-guide.md
Формат Rulebook
Rulebook-и — это markdown-файлы с YAML frontmatter:
---
uri: stakpak://my-org/deployment-guide.md
description: Standard deployment procedures for production
tags:
- deployment
- production
- sop
---
# Deployment Guide
Процедуры и инструкции по развёртыванию...
Автодополнение оболочки (Shell Completion)
Включи автодополнение по Tab для всех подкоманд, флагов и аргументов stakpak.
# Bash
echo 'source <(stakpak completion bash)' >> ~/.bashrc
# Elvish
echo 'eval (stakpak completion elvish | slurp)' >> ~/.elvish/rc.elv
# Fish
echo 'stakpak completion fish | source' > ~/.config/fish/completions/stakpak.fish
# Zsh
echo 'source <(stakpak completion zsh)' >> ~/.zshrc
# PowerShell
Add-Content -Path $PROFILE -Value 'stakpak completion powershell | Out-String | Invoke-Expression'
Поддерживаемые оболочки: bash, elvish, fish, powershell, zsh.
Режим оболочки (Shell Mode)
Выполняй системные команды явно из строки ввода.
Смотри документацию по Shell Mode — подробности о фоновом и переднем выполнении.
Тестирование платформ
Windows
Подробный отчёт о тестировании CLI-функциональности на Windows, включая установку, настройку и интеграцию с WSL2 и Docker.
⭐ Нравится то, что мы делаем?
Если наш агент экономит тебе время или упрощает жизнь в DevOps — поставь нам звезду на GitHub, это очень помогает!