Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CLI Commands

У OpenCrabs полноценный CLI с 20+ субкомандами для управления каждым аспектом агента.

Использование

opencrabs [COMMAND] [OPTIONS]

Команды

КомандаОписание
chat (по умолчанию)Запускает интерфейс чата TUI
daemonРабота в фоне (только channels, без TUI)
agentИнтерактивный многоходовой чат или режим одного сообщения
runВыполняет один prompt неинтерактивно; --quiet убирает chrome UI для чистого машинного stdout, --format выбирает text/json/markdown (v0.5.4)
cronУправление запланированными задачами (add/list/remove/enable/disable/test)
channelУправление channels (list, doctor)
memoryУправление памятью (list, get, stats, prune)
sessionУправление sessions (list, get)
dbУправление базой данных (init, stats, clear)
logsУправление логами (status, view, clean, open)
serviceУправление системным сервисом (install/start/stop/restart/status/uninstall)
statusПоказать статус агента
doctorПроверка здоровья подключений; --fix чинит застрявшие строки cron, устаревшие маркеры и права (v0.3.83)
onboardЗапуск мастера настройки
completionsГенерация автодополнения для shell (bash/zsh/fish/powershell)
versionПоказать информацию о версии
!commandBang-оператор: мгновенно выполняет любую команду shell без обращения к LLM. Вывод показывается системным сообщением. Например: !git status, !ls -la
/evolveАвтообновление: скачивает последний релиз и перезапускается на лету. Запускается автоматически при старте, если [agent] auto_update = true
/restartПерезапуск (v0.3.79): заново запускает тот же бинарник с теми же аргументами, так что знать или повторять способ запуска не нужно. Незавершённые ходы возобновляются автоматически при старте. В TUI возобновляется текущая session. В channels только для owner; с объявлением перед действием.
/exitВыключение (v0.3.79): останавливает OpenCrabs. Чтобы запустить снова, нужен доступ к машине, где он работает, поэтому это единственная команда, из которой нет пути назад через чат. В channels только для owner; с объявлением перед действием.
/clearСвежая session (v0.5.2): Закрывает текущую session и запускает на её месте пустую, без вызова summariser, поэтому это мгновенно. В channels только для owner.
/btwПараллельный агент: запускает изолированного суб-агента для побочной задачи, пока основной разговор продолжается. Например: /btw research the latest Rust async patterns
/mission-controlMission Control: полноэкранная панель: входящие RSI (ожидающие предложения), журнал активности (применённые улучшения) и расписание cron. Навигация vim-клавишами, применение/отклонение предложений клавишами a/r.
/skillsВыбор skills: просмотр и запуск шаблонов рабочих процессов с нечётким поиском. Каждый загруженный skill автоматически регистрируется как slash-команда.
/security-auditАудит безопасности: всеобъемлющий аудита безопасности и CVE вне зависимости от языка. Определяет тип проекта, запускает нужный сканер, просматривает свежий диф на паттерны инъекций/авторизации/криптографии, ставит оценку 0-100.
/cost-estimateОценка стоимости: оценка стоимости разработки кодовой базы, разбивка ROI с учётом ИИ и справедливая рыночная оценка. Спрашивает бизнес-контекст, прежде чем дать диапазон оценки.
/repo-auditАудит репозитория: проверки здоровья репозитория вне зависимости от языка. Конвейер из 5 фаз: определение языка → запуск нативных инструментов → метрики git → AST-анализ → оценка + рекомендации. Покрывает Rust, JS/TS, Python, Go.
/goalАвтономный цикл цели: поставьте цель через /goal <текст>, и агент крутится автономно: исполняет, сам оценивает себя LLM-судьёй и продолжает, пока цель не достигнута или не исчерпан бюджет ходов (по умолчанию 20). Поддерживает /goal pause, /goal resume, /goal status, /goal clear.
/models <provider/model>Прямое переключение модели (v0.3.66): переключайтесь сразу на конкретную модель в любом channel. Введите /models anthropic/claude-sonnet-4-20250514 для мгновенного переключения. Селектор области применения позволяет выбрать только текущую session или глобально.
opencrabs session set-modelПереключение модели без интерфейса (v0.3.66): переключайте модели из CLI без TUI. Полезно для скриптов и автоматизации.

Флаги конфигурации

FlagПо умолчаниюОписание
[agent] auto_updatetrueАвтоустановка новых релизов при старте с перезапуском на лету. Поставьте false, чтобы оставить ручной диалог с вопросом.
[agent] force_defaultfalse(v0.3.66) Если true, проталкивает пару провайдер/модель по умолчанию во все sessions при перезагрузке конфигурации. ��олезно для принудительного глобального переключения модели.
[agent] config_drift_warningstrue(v0.3.66) Предупреждения при старте, когда значение конфигурации молча расходится с ожидаемым дефолтом. Помогает ловить непреднамеренные изменения конфигурации.

Горячие клавиши (TUI)

ShortcutДействие
F12Включить/выключить захват мыши для нативного выделения текста в терминале

Предложение обновления при старте

Когда доступна новая версия, по центру экрана заставки появляется диалог с предложением принять (Enter) или пропустить (Esc). Принятие автоматически запускает /evolve. После обновления бинарник перезапускается, и заставка показывает новую версию.

Команды channels

/doctor, /help, /usage, /evolve, /restart, /exit и системные команды работают напрямую в Telegram, Discord, Slack и WhatsApp, минуя LLM. Они исполняются мгновенно и возвращают результат в channel.

/restart и /exit объявляют о себе перед действием: когда процесс уже убит, докладывать об ошибке некому. Обе команды только для owner, как и любая другая, меняющая работающий процесс. /exit: единственная команда, из которой нет пути назад через чат: для восстановления нужен доступ к машине, где работает OpenCrabs.

С v0.3.80 остановка своими словами тоже работает: просьба остановиться естественным языком действует в channels и в TUI, а не только голое слово «stop».

Вся логика команд channels централизована в src/channels/commands.rs (847 строк): общий обработчик, убирающий дублирование логики команд между 5 реализациями channels. Каждый channel делегирует к try_execute_text_command() для единообразного поведения.

/evolve в channels теперь выполняется напрямую (скачивает и устанавливает бинарник), без обращения к LLM. Раньше шло через агента.

Режим чата

# Default: launch TUI
opencrabs

# Same as above
opencrabs chat

Режим агента

Неинтерактивный режим для скриптов и автоматизации:

# Interactive multi-turn chat
opencrabs agent

# Single-message mode
opencrabs agent -m "Какие файлы менялись сегодня?"

Режим демона против TUI

OpenCrabs работает в одном из двух режимов. Выберите подходящий машине. Для одного профиля запускайте только что-то одно.

РежимКак запускатьЧто этоГде использовать
TUI (интерактивный)opencrabsПолный терминальный интерфейс: панели чата, sessions, настройки. Ваши channels тоже работают и делят вашу session.Машина, за которой вы сидите (ноутбук/десктоп)
Демон (headless)opencrabs daemon, or install as a service: opencrabs service install && opencrabs service startБез интерфейса. Только channels (Telegram, Discord, Slack, WhatsApp) + cron. Переживает перезагрузки, обрывы SSH и падения.Всегда включённая машина или VPS

Почему не оба сразу?

Кред бота (например, токен Telegram) может держать только один живой опрос getUpdates. Если демон и TUI одновременно владеют токеном одного профиля, он�� дерутся (HTTP 409), и channel отваливается.

TUI всегда побеждает

Когда вы открываете TUI, пока для того же профиля работает демон, TUI сначала выключает демона, забирает channels и показывает об этом баннер. Ваши channels уже настроены, поэтому они просто возобновляются без переподключения. Демон остаётся выключенным, пока вы не запустите его снова (opencrabs service start или повторный opencrabs daemon).

На машине, где обычно работает демон, повседневный поток такой: открывайте opencrabs, когда хотите поработать с агентом; закрывайте TUI и делайте opencrabs service start, когда снова нужен headless-режим.

Автозапуск при загрузке

  • Демон: используйте установщик сервиса (opencrabs service install); он настраивает systemd (Linux) / launchd (macOS) на старт при загрузке и перезапуск при падении. Это рекомендуемая схема для постоянной работы.
  • TUI: чтобы терминальный интерфейс открывался автоматически при входе, используйте автозапуск терминала/десктопа, а не установщик сервиса:
    • Linux-десктоп: положите файл .desktop в ~/.config/autostart/ с Exec=x-terminal-emulator -e opencrabs.
    • macOS: Системные настройки > Основные > Объекты входа > добавьте скрипт .command, запускающий opencrabs.
    • VPS по SSH: запускайте внутри tmux/screen и переподключайтесь. На headless-VPS вам обычно нужен демон, а не TUI.

Настоятельно рекомендуется ежедневным пользователям. Если планируете пользоваться OpenCrabs каждый день, попросите его настроить себя как системный сервис. Просто скажите что-то вроде «настрой себя запускаться вместе с компьютером» или «убери автозапуск сервиса». Агент сам настроит и уберёт launchd (macOS) или systemd (Linux) автоматически.

Держим TUI работающим на VPS (tmux)

Если вам нужен полноценный интерактивный TUI всегда под рукой на удалённом сервере (а не headless-демон), tmux - ваш путь. Ваша session переживает обрывы SSH, сон ноутбука и капризные соединения.

1. Установите tmux

# Debian / Ubuntu
sudo apt install tmux

# RHEL / CentOS / Fedora
sudo yum install tmux

2. Найдите, куда установлен opencrabs

which opencrabs

# If that returns nothing, search the whole filesystem
find / -name "opencrabs" -type f 2>/dev/null

3. Запустите именованную сессию tmux

tmux new -s opencrabs

4. Запустите opencrabs внутри неё

opencrabs

5. Отключитесь (opencrabs продолжит работать)

Нажмите Ctrl+B, затем D. Теперь можно закрыть SSH - opencrabs продолжит работать.

6. Подключитесь позже

tmux attach -t opencrabs

Вот и всё. Возвращайтесь с любой машины, подключайтесь и продолжайте с места, где остановились. Если вам нужны только channels (Telegram, Discord, Slack, WhatsApp) в headless-режиме без TUI, демон подойдёт лучше: opencrabs service install && opencrabs service start.

Эндпоинт здоровья

Добавьте в config.toml, чтобы открыть проверку здоровья:

[daemon]
health_port = 8080

Затем GET http://localhost:8080/health возвращает 200 OK с JSON-статусом. Полезно для сторожа systemd, мониторов аптайма или балансировщиков.

Управление сервисом

Установите OpenCrabs как системный сервис (launchd на macOS, systemd на Linux):

opencrabs service install
opencrabs service start
opencrabs service stop
opencrabs service restart
opencrabs service status
opencrabs service uninstall

Сервисы с учётом профилей

Каждый профиль получает собственный независимый сервис:

# Install a specific profile as a service
opencrabs -p hermes service install
opencrabs -p hermes service start

# Each profile gets its own service name
# macOS: com.opencrabs.daemon.hermes
# Linux: opencrabs-hermes.service

# Manage independently
opencrabs -p hermes service status
opencrabs -p hermes service stop
opencrabs -p hermes service uninstall

Несколько профилей могут работать одновременно как демоны-сервисы с полной изоляцией.

Переменная окружения OPENCRABS_PROFILE

Поставьте OPENCRABS_PROFILE=hermes, чтобы выбирать профиль без флага -p. Полезно для сервисов systemd, задач cron и режима демона.

Траблшутинг: демон не поднимается

Если opencrabs service status говорит stopped:

  1. Вы открывали TUI? Запуск opencrabs намеренно выключает демона, чтобы интерактивная session завладела channels. Демон остаётся выключенным, пока вы снова не выполните opencrabs service start.
  2. Старые сборки могут ещё иметь Restart=on-failure вместо Restart=always. Перегенерируйте юнит через opencrabs service install (затем service start), чтобы получить политику вечного перезапуска.
  3. Конфигурация, ключи, команды и инструменты перезагружаются на лету. Правка config.toml или keys.toml никогда не требует перезапуска демона. Если изменение не применяется, поищите в логах строку ConfigWatcher: reloaded вместо перезапуска.

Управление cron

# List all cron jobs
opencrabs cron list

# Add a new cron job
opencrabs cron add \
  --name "Daily Report" \
  --cron "0 9 * * *" \
  --tz "America/New_York" \
  --prompt "Check emails and summarize" \
  --provider anthropic \
  --model claude-sonnet-4-20250514 \
  --thinking off \
  --deliver-to telegram:123456

# Remove a cron job (accepts name or ID)
opencrabs cron remove "Daily Report"

# Enable/disable (accepts name or ID)
opencrabs cron enable "Daily Report"
opencrabs cron disable "Daily Report"

Горячие клавиши TUI

КлавишаДействие
EnterОтправить сообщение
EscОтмена / закрыть
Ctrl+NНовая session
Ctrl+LЭкран sessions
Ctrl+KОчистить текущую session
Ctrl+OСвернуть/развернуть группу инструментов
|Разделить панель горизонтально
_Разделить панель вертикально
Ctrl+XЗакрыть активную панель
TabПереключить фокус панелей / Принять автодополнение
Up/DownНавигация по подсказкам / sessions
/Начать slash-команду (например, /help, /models)
:Открыть выбор эмодзи