Установка и настройка execai — полный мануал

· Документация

execai — терминальный AI-агент ExecAI. Как Claude Code, только с нашим биллингом, полным каталогом моделей и с возможностью использовать твои личные подписки провайдеров.

Читает и пишет файлы, запускает shell-команды, ходит в git и kubernetes, работает с картинками, планирует многошаговые задачи и просыпается сам когда надо. Всё в одном терминальном окне.

Ниже — полный мануал: установка, настройка, все команды и режимы.


1. Установка

Linux / macOS (Intel и Apple Silicon)

Одна команда (зеркало Яндекса — быстрее в РФ/СНГ):

curl -fsSL https://storage.yandexcloud.net/execai-agent-prod/execai/stable/install.sh | bash

Либо через GitHub Releases (для тех кто вне РФ или предпочитает GitHub):

curl -fsSL https://raw.githubusercontent.com/execai/execai-agent/main/install.sh | bash

Скрипт один и тот же: сам выбирает зеркало по локали системы (ru → Яндекс, иначе GitHub) и автоматически переключается на второе, если первое недоступно. Бинарники идентичны, SHA256 проверяется.

После неё в новом терминале набирай execai. В текущем — если раньше уже был execai и bash закешировал путь, поможет hash -r.

Скрипт:

  • определит ОС и архитектуру (linux-amd64, linux-arm64, darwin-amd64 (Intel Mac) или darwin-arm64 (M1/M2/M3)),
  • проверит SHA256 архива,
  • положит бинарь в /usr/local/bin/execai (если есть passwordless sudo) или ~/.local/bin/execai,
  • уберёт старые копии execai из PATH и мёртвые записи из .bashrc/.zshrc,
  • на macOS автоматически снимет метку Gatekeeper (com.apple.quarantine).

Windows 10 / 11 (amd64 и ARM64)

Открой Windows Terminal (не старый cmd.exe) и PowerShell:

iwr -useb https://storage.yandexcloud.net/execai-agent-prod/execai/stable/install.ps1 | iex

Скрипт автоматически определит архитектуру (amd64 / arm64 для Copilot+ PC), попросит один раз подтвердить UAC чтобы добавить папку в исключения Defender (иначе антивирус может съесть бинарь), скачает execai.exe в %LOCALAPPDATA%\execai\, пропишет в PATH.

Проверка

execai version
# execai R5.NN

2. Первый запуск

execai

Откроется браузер со страницей подтверждения агента. Alias уже заполнен твоим hostname — можешь принять как есть или переименовать (например рабочий-макбук). Нажми "Подтвердить".

CLI сразу получит долгоживущий токен (90 дней с авто-продлением). Ничего копировать не надо.

Если переустановишь execai или удалишь credentials.json — при повторном логине вернётся тот же агент (не создаётся дубликат). Один физический хост = одна persistent-сессия.

Аккаунт ExecAI опционален. Если у тебя есть своя подписка (Kimi Code, Z.ai, OpenAI, Anthropic) или локальный Claude Code / Codex CLI / Ollama — можно вообще не логиниться: прямо с login-экрана набери /connect kimi <ключ> → /source kimi и работай. А при уже подключённой подписке execai стартует сразу в чат, минуя login-экран.

Управление — в личном кабинете: /settings/agents список всех твоих CLI-агентов, /settings/devices — браузерные и мобильные сессии отдельно.

Язык интерфейса

TUI говорит на 5 языках: английский, русский, испанский, немецкий, китайский. Язык определяется автоматически из системной локали ($LANG), сменить можно в любой момент:

/lang        ← показать текущий + список
/lang en     ← переключить (сохраняется в конфиг)

Или набери /lang с пробелом — выпадет меню со стрелочками.


3. Как разговаривать с агентом

Пиши задачу обычным языком:

› проверь свободное место на сервере dev01
› перепиши эту функцию с использованием goroutines
› создай PR с фиксом бага из issue #142

Агент сам:

  • разберёт что надо,
  • решит какой tool использовать,
  • покажет команду до выполнения если она меняет состояние,
  • выполнит, прочитает результат, ответит.

Read-only команды (ls, cat, git status, kubectl get, grep) идут автоматом. Меняющие состояние (rm, git push, kubectl delete) — спросят подтверждения с гибкими опциями:

  • Раз — только один раз
  • Сессия — все Bash до перезапуска
  • Команда — эту команду с этими аргументами
  • Всегда — навсегда (запишется в permissions.json)
  • Отклонить — агент получит "user denied"

4. Источники (source) — где брать модель

Ключевая фича: 6 разных источников под одной беседой. Переключаешься на лету, история сохраняется.

🏢 ExecAI (default)

Наш биллинг, ~34 модели через один API. Ничего дополнительно настраивать не нужно.

/source execai

Модели: GPT-5.6 Sol/Terra/Luna, GPT-5.5, Claude Opus 4.8, Sonnet 4.6, Haiku 4.5, Fable 5, GLM-5.2, Kimi K2.7-Code, DeepSeek V4 Pro, Qwen Max, MiniMax M3 и другие.

🎯 Z.ai Coding Plan (твоя подписка)

Если у тебя есть Z.ai Coding Plan ($3-60/мес) — можно ходить туда напрямую, ExecAI ничего не списывает.

  1. Возьми Coding Plan ключ (не обычный API-key!): z.ai/manage-apikey/apikey-list → раздел "Individual Coding Plan > Plan Overview"
  2. Подключи:
    /connect zai sk-zai-XXXXXXXX
    
  3. Переключись:
    /source zai
    

Primary модель — GLM-5.2 (flagship coding, MoE 753B/40B, dual thinking).

🌙 Kimi Code Coding Plan — подписка kimi.com/code

Отдельный продукт Moonshot (не путать с Moonshot Platform ниже). Флагман K3 через собственную подписку.

  1. Возьми ключ на www.kimi.com/code/console — раздел API-ключи.
  2. /connect kimi sk-XXXXXXXX
    /source kimi
    

Автоматически определяется тариф (K3 / K3 + HighSpeed / K2.7 Code — по тому что реально доступно на подписке). Отображается в статус-баре: src : kimi (K3 + HighSpeed).

Модели: k3 (primary), kimi-for-coding (K2.7 Code), kimi-for-coding-highspeed. /usage покажет реальную квоту: недельный лимит + rolling-окна (5h) с прогресс-барами и временем сброса.

🌗 Moonshot Platform — pay-per-token API

Обычный API-ключ для оплаты за токены (не подписка). Если нужны модели Moonshot вне Kimi Code:

  1. Возьми ключ на platform.moonshot.ai/console/api-keys.
  2. /connect kimi-api sk-XXXXXXXX
    /source kimi-api
    

Каталог моделей автоматически подтягивается из /v1/models твоего аккаунта. Primary → kimi-latest (auto-alias на актуальный флагман, обычно K3). Ключ проверяется при /connect — 401/403 сразу отказ с пояснением какой ключ куда.

🤖 Anthropic API (прямой)

Если хочешь ходить в Claude напрямую с pay-per-token биллингом:

  1. Получи ключ на console.anthropic.com/settings/keys
  2. /connect anthropic sk-ant-XXXXXXXX
    /source anthropic
    

Модели: claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5.

🎨 OpenAI Platform (прямой API pay-per-token)

Если хочешь ходить в OpenAI напрямую с pay-per-token биллингом:

  1. Получи ключ на platform.openai.com/api-keys
  2. /connect openai sk-proj-XXXXXXXX
    /source openai
    

Каталог моделей подтягивается из твоего аккаунта. Primary → gpt-5 (или o3 / gpt-4.1 / gpt-4o в порядке приоритета — что доступно). Ключ валидируется при /connect через /v1/models.

🖥 Claude Code CLI (Pro/Max OAuth)

Если у тебя уже стоит claude (Claude Code) с подпиской Pro/Max — можно использовать её квоту через локальную OAuth-сессию, без отдельного ключа:

/connect claude-cli
/source claude-cli

Модели (алиасы): sonnet, opus, haiku. Управление моделью — через claude config set defaultModel <id> снаружи.

Ограничение: наши execai-tools (Bash/Read/Write) не работают через claude-cli — он использует свои с собственным разрешением.

💚 OpenAI Codex CLI (ChatGPT Plus/Pro/Team OAuth)

Аналог claude-cli для OpenAI. Использует квоту твоей ChatGPT-подписки (Plus, Pro, Team или Enterprise) через локальный codex binary — без отдельного API-ключа.

Установка codex (Linux/macOS):

curl -fsSL https://chatgpt.com/codex/install.sh | sh

Windows:

powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"

Логин в ChatGPT (открой браузер под своим аккаунтом):

codex login

В execai:

/connect codex-cli
/source codex-cli

Модели: gpt-5, o3, o4-mini. Управление моделью — codex config снаружи или /model внутри execai. Ограничения такие же как у claude-cli: execai-tools не работают, codex запускает свои.

🌩 / 🏠 Ollama — cloud или local

Cloud (ollama.com):

/connect ollama <api-key>
/source ollama

Ключ — ollama.com/settings/keys. Модели: glm-5.2 (primary), qwen3-coder:480b, kimi-k2:1t, deepseek-v3.1:671b, gpt-oss:120b.

Local (свой Ollama):

ollama pull llama3.2                     # снаружи
/connect ollama local                    # localhost:11434
/connect ollama local http://192.168.1.10:11434   # свой URL
/source ollama

Каталог динамически подтягивается из /api/tags. 0 ₽ локально.

Переключение

  • История беседы общая. /source zai → /source execai — контекст сохраняется, glm-5.2 видит то что говорил claude.
  • Биллинг изолирован. На внешней подписке ExecAI ничего не списывает.
  • /subscriptions — что подключено, /disconnect <provider> — удалить.

5. Модели по каждому источнику

Source Модели Особенности
execai GPT-5.6 (Sol/Terra/Luna), GPT-5.5, Claude Opus 4.8/4.7, Sonnet 4.6, Haiku 4.5, Fable 5, GLM-5.2, Kimi K2.7-Code, K2.6, DeepSeek V4 Pro, Qwen Max, MiniMax M3, Gemini 2.5 Pro (~34 модели) Vision, tools, эффорт
zai glm-5.2, glm-5.2[1m] (1M ctx), glm-4.7 Coding-специализация, dual thinking
kimi k3, kimi-for-coding, kimi-for-coding-highspeed Kimi Code Coding Plan (kimi.com/code). Реальные квоты в /usage. Auto-detect тарифа
kimi-api kimi-latest, kimi-k2-turbo-preview, moonshot-v1-* Moonshot Platform pay-per-token. Каталог динамический из /v1/models
anthropic claude-opus-4-8, sonnet-4-6, haiku-4-5 Extended thinking
openai gpt-5, o3, gpt-4.1, gpt-4o, o4-mini Pay-per-token, каталог динамический из /v1/models
claude-cli sonnet, opus, haiku (алиасы + pinned) OAuth Pro/Max квота
codex-cli gpt-5, o3, o4-mini ChatGPT Plus/Pro/Team OAuth через codex CLI
ollama cloud glm-5.2, qwen3-coder:480b, kimi-k2:1t, deepseek-v3.1:671b, gpt-oss:120b На их серверах
ollama local что установлено через ollama pull … Локально, 0 ₽

Смена модели: /model <id> или просто /model — картинка с автокомплитом.


6. Effort (уровень рассуждения)

Для Anthropic-совместимых источников (zai, kimi, anthropic, ollama-cloud, claude-cli) и reasoning-моделей OpenAI (openai/codex-cli с o3/o4-mini) — extended thinking: модель сначала "думает" внутри себя, потом отвечает. На сложных задачах кардинально улучшает качество.

/effort              # открыть picker

6 уровней: off / low / medium / high / xhigh / max (32k токенов на размышление).

Управление в picker'е: ←→ выбор, Enter применить.

Или Shift+Tab циклит уровни. Виден в status bar как effort : high.

Лимит tool-use итераций за один ход

Дефолт — 40 итераций tool-use в одном ответе (т.е. в одном ходе агент может 40 раз подряд вызывать Bash / Read / Write / etc). Хватает почти на всё. Для больших автономных задач можно увеличить:

/max-iterations              # показать текущий
/max-iterations 100          # поставить 100 (диапазон 1-500)
/maxiter 100                 # короткий алиас

Если лимит исчерпан — мягкая остановка, не ошибка. Агент вставит подсказку типа "⚠ Достигнут лимит 40 итераций — скажи «продолжай» чтобы дать ещё 40". Просто напиши продолжай и он возьмёт остаток задачи с того же места, ничего не теряется. Значение сохраняется в ~/.config/execai/config.json.


7. Картинки и файлы

Картинки

Просто перетащи PNG/JPG/GIF/WEBP в терминал или впиши путь в кавычках:

› '/home/yz/Pictures/Снимок экрана.png' что тут на картинке?

Vision-модели: claude-sonnet-4-6, gpt-5.5, glm-5v-turbo, glm-4.5v и другие. Если выбрана не-vision — переключись через /model.

Multi-image: несколько путей в одном сообщении → все уйдут в модель.

Файлы

Просто скажи путь — агент прочитает через Read:

› посмотри internal/chat/tui.go и предложи рефакторинг

8. Loop и Autoloop

/loop — фиксированный таймер

/loop 5m проверь статус CI билда

Каждые 5 минут агент сам перепосылает промт. /loop stop — остановить.

Autoloop — AI сам решает когда проснуться

AI получил инструмент schedule_wakeup и сам решает когда вернуться:

› запусти `npm install`, подожди пока закончится и проверь что в логах нет error

AI запустит install, увидит что займёт ~5 мин, позовёт schedule_wakeup(300s), закончит текущий ответ. Через 5 минут агент разбудится сам, продолжит с того же места, видит всю историю. Готовность — просто не зовёт wakeup, autoloop останавливается.


9. Память агента

Агент помнит факты между сессиями:

User memory (кросс-проектная, личное про тебя):

~/.config/execai/memory/
├── MEMORY.md              ← индекс (всегда в system prompt)
├── user_role.md           ← 1 файл на факт
├── feedback_style.md
└── reference_jenkins.md

Project memory — <CWD>/EXECAI.md одним файлом.

Как использовать:

› запомни что я на Go пишу и предпочитаю bubbletea

Модель сама создаст user_role.md с фронтматтером + строку в MEMORY.md. НЕ засоряет эпизодическими фактами.

Типы записей: user, feedback, project, reference.


10. Управление своими агентами (веб)

Все свои устройства — в личном кабинете:

  • /settings/agents — CLI-агенты execai по машинам (alias, hostname, ОС, тип, последняя активность). Одна кнопка "Отключить".
  • /settings/devices — браузерные и мобильные сессии отдельно.
  • /settings/usage — расходы по тарифу.
  • /settings/billing — тариф и подписки.

11. Проекты и фоновый режим — веб → агент

С execai v6.0. Веб-часть требует инструмента «Агенты» в каталоге проекта — он включается постепенно.

Твоя машина может быть инструментом внутри проекта веб-чата: один раз привяжи каталог к проекту, запусти фоновый слушатель — и проси модель в браузере делать что-то на твоей машине. Модель зовёт агента как любой другой инструмент проекта (ssh, git), задача выполняется в каталоге проекта, ответ возвращается в чат.

Привязка каталога к проекту

/project              # твои проекты; ● — привязан к этому каталогу
/project bind <имя>   # привязать текущий каталог + добавить машину в проект
/project on|off       # тот же тумблер, что в карточке проекта в вебе
/project unbind       # снять привязку и убрать машину из проекта

Привязка делает два дела: запоминает «этот каталог на этой машине = тот проект» и добавляет машину в проект обычной записью инструмента — как ssh-профиль. После этого машина видна в карточке проекта с тумблером вкл/выкл. В интерфейсе показываются алиасы машин; стабильный id машины переживает переустановку и повторный login.

execai serve — фоновый слушатель

execai serve

Слушает задачи из веб-чата и выполняет их. Что важно знать:

  • Задача выполняется в каталоге, привязанном к её проекту, а не там, где запущен serve. Каталог пропал → внятная ошибка, а не работа не в том месте.
  • Что разрешено — решает твой permissions.json (то, что ты отмечал кнопкой «НАВСЕГДА» в TUI). Всё вне списка отклоняется: рядом нет человека, который мог бы подтвердить. Пустой файл → разрешено всё, с громким предупреждением при старте.
  • --read-only — режим «смотреть, но не трогать»: без правок файлов и без команд.
  • Каждый вызов инструмента пишется в журнал ~/.config/execai/serve-audit.log (ротация на 8 МБ) — утром видно, что агент делал ночью.
  • Один демон на машину (pid-lock). execai serve --status — pid, аптайм, контур; --stop — мягкая остановка, даёт доделать текущую задачу; --stop --force — SIGKILL через 5 секунд, результат текущей задачи теряется и в чате будет таймаут.
  • Агент оффлайн → чат честно получает «агент не отвечает» примерно за 12 секунд; задача остаётся в очереди и выполнится, как только serve запустится. Выдача задач подтверждается (ack) — задача, отданная в оборвавшееся соединение, не теряется.
  • Закрыл терминал — процесс умрёт вместе с ним. Чтобы пережил:
setsid nohup execai serve > ~/.execai-serve.log 2>&1 &

В этом режиме выключен AskUser (некому отвечать), а предел итераций ниже — 30 на задачу.


12. Полный справочник команд

Основные

Команда Что
/help Все команды
/model [id] Сменить модель
/source [name] Сменить источник (execai/zai/kimi/anthropic/claude-cli/ollama)
/connect <provider> [args…] Подключить подписку. Без аргументов — help
/disconnect <provider> Отключить подписку
/subscriptions (/subs) Список подключений
/effort Picker уровня рассуждения
/max-iterations [N] Лимит tool-use итераций за ход (дефолт 40, при исчерпании — «продолжай»)

Сессии и история

Команда Что
/new Новая беседа (текущая сохранится)
/sessions Список бесед
/resume <num|id> Открыть сохранённую
/compact Сжать длинную беседу в summary через LLM
/log Последние 20 LLM-запросов
/clear (Ctrl+L) Очистить экран

Автоматизация

Команда Что
/project [bind <имя>|on|off|unbind] Привязка каталога к проекту веб-чата; on/off — тумблер проекта (с v6.0)
/loop <interval> <prompt> Фиксированный таймер-loop
/loop stop Остановить loop

Настройки

Команда Что
/cd <path> Сменить рабочую папку
/config Показать конфиг
/permissions Persistent-разрешения tools
/mouse on/off Захват мыши (off → выделение как в обычном терминале)
/whoami Кто залогинен
/usage Тариф + расходы (только ExecAI-source)

Аккаунт

Команда Что
/login Перелогиниться
/logout Выйти
/quit (Ctrl+D) Выход

13. Хоткеи

Клавиша Что
Enter Отправить
Shift+Enter Новая строка (multiline)
↑ / ↓ История твоих вводов (как bash)
Tab Принять подсказку автокомплита
Shift+Tab Циклить effort-уровень (или открыть picker)
PgUp / PgDn Скролл чата
Ctrl+R Fuzzy-поиск по сессиям
Ctrl+C Отменить стрим (дважды — выход)
Ctrl+D Выход (дважды подтверждение)
Ctrl+L Очистить историю
Shift+drag Выделить текст (или /mouse off)
Колесо мыши Скролл viewport

14. Где живут файлы

ОС Путь
Linux ~/.config/execai/
macOS ~/Library/Application Support/execai/
Windows %APPDATA%\execai\
Файл Что
config.json api_base, selected_model_id, effort
credentials.json JWT (mode 0600)
host_id Стабильный machine-id (fallback если /etc/machine-id недоступен)
subscriptions.json Подключенные подписки
permissions.json Persistent-allow-list tools
sessions/<uuid>.json История каждой беседы
memory/MEMORY.md Индекс user memory
memory/*.md Отдельные факты (user/feedback/project/reference)
input_history Последние 200 твоих вводов
requests.log Лог LLM-запросов (для /log)

15. Если что-то сломалось

execai: command not found после установки:

exec bash -l                              # или открой новый терминал

"подписка zai не подключена" при /source zai — сначала /connect zai <key>.

429 "Insufficient balance" на Z.ai — обычный API-key вместо Coding Plan key. Возьми правильный: z.ai/manage-apikey/apikey-list → Individual Coding Plan.

Windows Defender сожрал бинарь — переустанови, скрипт добавит exclusion автоматом (потребуется UAC один раз).

TUI пустой / кривой — Windows Terminal (не conhost), Linux — любой современный (gnome-terminal, kitty, alacritty). Не запускай через SSH без -t.

Ctrl+C застрял — двойной Ctrl+C выход. Или Ctrl+D.

"Достигнут лимит N итераций" — это НЕ ошибка, а мягкая остановка. Скажи «продолжай» и агент возьмёт следующие N итераций с того же места. Если хочешь сразу больше — /max-iterations 100.

"context deadline exceeded" / "не удалось получить список моделей" — если сеть или API временно недоступны, execai стартует на кешированном каталоге (или встроенной заглушке) и покажет notice ℹ Использую кешированный каталог. TUI открывается всегда, реальные запросы могут не пройти пока не восстановится связь.


Что дальше

  • Веб-версия: execai.ru — общий аккаунт с CLI
  • Список тарифов: /settings/billing
  • Обратная связь — в веб-чате приложения

Работаем.

Открыть чат ExecAI

Ещё в блоге