oro CLI
oro CLI
oro — CLI-инструмент для управления жизненным циклом агентов на эфемерных Coder workspaces. Обеспечивает сохранение и восстановление состояния, агентный цикл с автовосстановлением после сбоев, и Telegram bridge для коммуникации.
Архитектура
┌─────────────────────────────────────────────┐
│ Coder Workspace │
│ │
│ ┌──────────┐ ┌───────────┐ ┌──────────┐ │
│ │ oro loop │ │ oro bridge│ │ agentapi │ │
│ │ (claude) │◄─┤ (telegram)├──►(HTTP) │ │
│ └────┬─────┘ └───────────┘ └──────────┘ │
│ │ │
│ ┌────▼─────┐ │
│ │ ~/.claude │ ◄── oro restore / upload │
│ │ CLAUDE.md │ │
│ └──────────┘ │
└───────┬─────────────────────────────────────┘
│
┌────▼─────────────────────────────────┐
│ Oro CLI Server (cli.master.oro.ad) │
│ ├── OAuth flow │
│ ├── S3 storage (PS.KZ) │
│ └── Session management │
└──────────────────────────────────────┘
Команды
oro prepare
Полная инициализация workspace. Выполняется один раз при создании.
oro prepare
Что делает:
- Настраивает окружение (переменные, git config)
- Устанавливает
glab(GitLab CLI) иagentapi - Восстанавливает сессию из S3 (
oro restore) - Настраивает git-доступ к репозиториям
- Устанавливает project trust для Claude Code
Все параметры берутся из переменных окружения Coder template.
oro restore
Восстанавливает ~/.claude из S3 с умным мержем.
oro restore
Стратегия мержа:
- Auth — перезаписывается полностью (всегда свежий токен)
- Settings — мержатся (локальные настройки приоритетнее)
- Plugins — union merge (объединяет списки)
- History — дедупликация по содержимому
- Memory — мержится без потери данных
oro upload
Загружает ~/.claude в S3. Благодаря механизму smart merge все агенты могут безопасно вызывать oro upload — установленные на уровне проекта skills и другие данные корректно мержатся без потерь.
oro upload
oro project restore / oro project upload
Синхронизация файлов конкретного проекта: CLAUDE.md, .claude/, .claude-devtools/.
oro project restore # При запуске
oro project upload # После изменений в CLAUDE.md или .claude/
oro loop
Агентный цикл с автовосстановлением. Оборачивает agentapi + claude с перезапуском при сбоях.
oro loop
- Максимум 3 перезапуска в час
- При перезапуске автоматически читает
resume.md - Логирует причины перезапусков
oro bridge
Telegram-to-AgentAPI bridge. Транслирует сообщения из Telegram в Claude через AgentAPI.
oro bridge
- Long-polling
getUpdatesиз Telegram - Буферизует сообщения, пока агент занят
- Пересылает в Claude через AgentAPI HTTP
oro status
Показывает сохранённые сессии.
oro status
oro id
Управление идентичностью агента.
oro id
Переменные окружения
| Переменная | Назначение |
|---|---|
CODER_WORKSPACE_NAME | Имя workspace (устанавливается Coder) |
ORO_AGENT_ROLE | Роль агента (skill-manager, dev-playbook, etc.) |
TELEGRAM_BOT_TOKEN | Токен Telegram бота для bridge/report |
TELEGRAM_CHAT_ID | ID чата для отправки сообщений |
GITLAB_TOKEN | GitLab API токен |
S3_ACCESS_KEY / S3_SECRET_KEY | Credentials для S3 storage |
CODER_URL | URL Coder инстанса |
CODER_SESSION_TOKEN | Токен для Coder API |
Серверная часть
Oro CLI Server работает на cli.master.oro.ad как Nuxt 4 приложение:
- OAuth flow — аутентификация Claude через Docker-in-Docker sidecar
- S3 API — хранение и восстановление сессий
- Метрики — Prometheus на
/api/metrics - Health check —
/api/health
Дисциплина синхронизации
oro upload — любой агент (глобальный ~/.claude, smart merge)
oro project upload — любой агент (проектные файлы)
Smart merge гарантирует, что установленные на уровне проекта skills, plugins и настройки не теряются при синхронизации между агентами.
Маркеры синхронизации хранятся в /tmp/.oro_last_sync для отслеживания времени последней синхронизации.
Связанные документы
- Экосистема Oro — общая архитектура
- oro-skills — навыки и хуки
- ADR-009: GitLab CE — CI/CD инфраструктура