ARC CLI — Справочник команд
ARC CLI — инструмент командной строки для взаимодействия с Arc Cloud. Управляй проектами, задачами, вики и скилами прямо из терминала.
- Исходный код:
clients/arc-cli.ts - API-клиент:
clients/lib/api.ts - Сборка:
scripts/build-arc.sh(скомпилированный binary)
Установка и настройка
Конфигурация хранится в ~/.arc/config.json (server_url, token, connected_at).
arc login [server_url]
Авторизация через device code flow. Открывает браузер для подтверждения.
arc login # сервер за замовчуванням: https://arc-os.co
arc login https://my-server.com # кастомний сервер
После запуска CLI выведет URL и одноразовый код. Открой URL в браузере, подтверди авторизацию — CLI автоматически получит токен.
arc login --token <token>
Прямая авторизация токеном (для автоматизации или когда device flow недоступен).
arc login --token eyJhbGciOiJIUzI1NiI...
CLI валидирует токен через API перед сохранением.
arc logout
Удаляет credentials из ~/.arc/config.json и убирает ARC-блок из CLAUDE.md (если есть).
arc logout
arc projects
Список доступных проектов на сервере.
arc projects
Вывод:
Available projects:
Name Type Status
--------------------------------------------------
arc-v2 bot running
my-project bot unknown
Запуск сессии
arc <project> [mode]
Инициализирует сессию Claude с полным контекстом проекта. Эквивалент arc start <project> [mode].
arc my-project dev # режим dev (за замовчуванням)
arc my-project prod # режим prod
arc --role clceo my-project # з роллю CEO
Что происходит при запуске:
- Запрос
GET /api/cli/init/:project/:mode— получение CLAUDE.md, worker config, skills - Session-start picker (issue #115) — интерактивный выбор активной задачи для сессии: open issues (sort P0→P3 + recent-first, fuzzy filter если >10), recently-closed (с reopen-confirm на pick),
[n]create new,[q]skip с double-confirm. Selected id сохраняется в~/.arc/sessions/<project>-<worker>.jsonкакactive_issue_id - Injection контекста в локальный
CLAUDE.md(ARC Cloud block +Active issue: #N — Titleblock) ARC_ACTIVE_ISSUE_ID=<id>env var передаётся в Claude subprocess — Bash tool видит его дляarc issue logбез re-prompt- Очистка deprecated
.mcp.jsonзаписей (если есть) - Запуск
claudesubprocess с TTY interactivity - Старт background watcher (см. «Мониторинг сессий»)
Параметры:
| Параметр | Описание |
|---|---|
project |
Техническое название проекта (напр. arc-v2) |
mode |
dev (по умолчанию) или prod |
--role <role> |
Роль сессии (напр. clceo, developer) |
Non-interactive bypass: ARC_ISSUE_ID=42 arc my-project dev пропускает picker и использует заданный id (для CI/скриптов).
Mid-session switch: arc issue switch <id> (из параллельного терминала) переключает активную задачу — пишет switched_away на предыдущей + switched_in на новой. Текущая сессия подхватит новый id после рестарта.
arc continue <project> [mode]
Resume последней сессии Claude Code (24-часовое окно). Авто-восстанавливает active_issue_id без re-prompt.
arc continue my-project # підхопити попередню сесію + active issue
arc continue my-project --reselect-issue # force re-run picker
arc tour
Интерактивный 5-шаговый онбординг в терминале (mirrors web checklist). Прогресс синхронизируется с web дашбордом.
arc tour
Управление задачами (Issues)
arc issues [--status <filter>]
Список задач проекта.
arc issues # тільки open (за замовчуванням)
arc issues --status closed # тільки закриті
arc issues --status all # всі задачі
Вывод:
3 issue(s):
- #12 [P1] Add dark mode [ux, frontend]
- #15 [P2] Fix login timeout
- #18 [P0] Critical: DB migration
arc issue create --title "..." [options]
Создай новую задачу.
arc issue create --title "Add dark mode" --priority P1 --labels "ux,frontend"
arc issue create --title "Fix bug" --body "Detailed description here" --priority P0
Параметры:
| Параметр | Обязательный | Описание | По умолчанию |
|---|---|---|---|
--title <text> |
да | Название задачи | — |
--body <text> |
нет | Подробное описание | — |
--priority <level> |
нет | P0 / P1 / P2 / P3 |
P2 |
--labels <list> |
нет | Labels через запятую: bug,ux |
— |
arc issue update <id> [options]
Обнови существующую задачу.
arc issue update 12 --status closed
arc issue update 15 --priority P0 --title "Critical: Fix login timeout"
arc issue update 18 --body "Updated description with more context"
Параметры:
| Параметр | Описание |
|---|---|
--status <status> |
open или closed |
--title <text> |
Новое название |
--body <text> |
Новое описание |
--priority <level> |
P0 / P1 / P2 / P3 |
Нужен хотя бы один параметр для обновления.
arc issue log <id> "<text>" [--author <name>]
Добавить запись прогресса к задаче (activity log).
arc issue log 12 "Started implementation"
arc issue log 12 "Dark mode toggle works" --author "developer"
Параметры:
| Параметр | Обязательный | Описание | По умолчанию |
|---|---|---|---|
id |
да | Номер задачи | — |
text |
да | Текст записи | — |
--author <name> |
нет | Имя автора | cli |
Backend (POST /api/mcp/issues/:project/:id/log) принимает опциональные поля type (whitelist: log / session_start / session_end / switched_in / switched_away / auto_summary / reopened) и ts (ISO-8601 для backdated entries, future-dated клампится до now). Используется внутренне session-start picker (#115) и arc retro (#117).
arc issue switch <id>
Переключить активную задачу для текущей сессии (issue #115). Сохраняет в ~/.arc/sessions/<project>-<worker>.json, пишет switched_away на предыдущей задаче + switched_in на новой.
arc issue switch 42
arc issue switch 42 --worker consultant # для конкретного воркера (default: developer)
Validation: задача должна существовать + быть open. Если закрыта — сначала arc issue update <id> --status open.
arc retro <project> [options]
Реконструировать задачи retroactively из session history + git log (issue #117). Сканирует ~/.arc/sessions/<project>-*.json, читает first user prompt из transcript JSONL, собирает commits через git log --since=started_at --until=ended_at.
arc retro gapap # dry-run — друкує план
arc retro gapap --apply # створює issues
arc retro gapap --since 2026-01-01 # тільки після цієї дати
arc retro gapap --worker consultant # тільки для одного worker
Что пропускается автоматически:
| Тип | Почему |
|---|---|
| Linked sessions | active_issue_id уже установлен (post-#115) |
| Warm-up sessions | 0 commits + trivial prompt (hi, test, continue) |
| Duplicates | Jaccard title similarity ≥0.55 + ±48h overlap с существующей задачей |
Older than --since |
за пределами окна |
Что происходит при --apply:
createIssueдля каждого candidate (priority=P2, label=retro)- Backdated activity entries:
session_start(started_at) +auto_summaryper commit (commit timestamp) +session_end(ended_at) — черезPOST /logс полемts - Сессии >30 дней с commits →
status=closedсразу. Recent unfinished →status=open.
Скилы и знания
arc skill <name>
Загрузить скил из Cloud. Выводит инструкции скила и evals (если есть).
arc skill consultant_system
arc skill crm-api-reference
Нужна переменная ARC_PROJECT (устанавливается автоматически при arc start).
Если скил не найден, CLI выведет список доступных.
arc kb search "<query>"
Поиск по вики проекта. Keyword match по именам файлов, возвращает до 5 лучших результатов (контент обрезается до 2000 символов).
arc kb search "deployment"
arc kb search "arc-cli"
arc learnings
Накопленные правила и корректировки из всех сессий проекта.
arc learnings
Вывод:
- [cli] Always validate project name before API calls
- [deploy] Test nginx config before reload
Вики и Roadmap
arc wiki update --file <name> --content "..."
Создай или обнови страницу вики проекта.
arc wiki update --file "architecture" --content "# Architecture\n\nMain components..."
arc wiki update --file "deploy-guide" --content "$(cat my-doc.md)"
Параметры:
| Параметр | Обязательный | Описание |
|---|---|---|
--file <name> |
да | Название страницы (без .md) |
--content <text> |
да | Markdown-контент |
Вывод: Wiki created: architecture.md (342 bytes) или Wiki updated: ...
arc roadmap sync --phase <id> --status <text> [--notes "..."]
Обнови статус фазы в roadmap проекта.
arc roadmap sync --phase 45 --status "IN PROGRESS"
arc roadmap sync --phase 44 --status "DONE" --notes "All analytics redesigned"
Параметры:
| Параметр | Обязательный | Описание |
|---|---|---|
--phase <id> |
да | ID фазы (напр. 38.1, 45) |
--status <text> |
да | Статус: DONE, IN PROGRESS, PLANNED и т.д. |
--notes <text> |
нет | Заметки к фазе |
Отчётность
arc report --summary "..." [options]
Отправить отчёт сессии в Arc Cloud.
arc report --summary "Implemented dark mode with system preference detection"
arc report --summary "Fixed auth bug" --files "auth.ts,middleware.ts" --decisions "Switched to HMAC tokens"
Параметры:
| Параметр | Обязательный | Описание |
|---|---|---|
--summary <text> |
да | Краткое резюме сделанного |
--files <list> |
нет | Изменённые файлы через запятую |
--decisions <list> |
нет | Ключевые решения через запятую |
Documentation Enforcement (Phase 49.1-49.2.1)
ARC имеет встроенную систему, которая держит документацию в актуальном состоянии без human reminders. Работает вместе с pre-push git hook (scripts/check-docs-coverage.ts).
arc wrapup
Read-only checklist — показывает, какие docs требуют обновления для unpushed commits.
arc wrapup
Делегирует в scripts/check-docs-coverage.ts. Mapping:
| Изменение кода / commit | Что ожидается |
|---|---|
shared/migrations/* |
docs/public/architecture/database-schema.md |
shared/routes/* |
docs/public/api/api-reference.md |
Phase NN в commit msg |
docs/ROADMAP.md + docs/status/current-state.json |
| ≥3 backend файлов & ≥50 LOC | learnings.md |
arc wrapup --generate
Auto-draft skeleton entries для отсутствующих docs. Записывает TODO-marked stubs в:
learnings.md— timestamp + auto-detected scope (api/backend/frontend/infra/process)docs/ROADMAP.md— Phase NN heading + commit summarydocs/status/current-state.json— version bump + prepended change
arc wrapup --generate
# далі: review через `git diff`, заміни TODO на реальний контент, commit
TODO маркеры намеренно не пройдут review — генерируется структура, не содержимое.
arc wrapup --from-summary "<text>"
Capture research/decision/finding напрямую в learnings.md без коммита кода. Закрывает blind spot для работы без code commits (capacity analysis, broker comparison, trade-off review).
arc wrapup --from-summary "Decision: rejected Redis for single-VPS — broker overhead unjustified for 10KB/msg, 1-to-1 FIFO. fs.watch sufficient."
CLI auto-classifies:
- Type: decision / lesson / finding / spike (regex hints)
- Scope: infra / perf / security / api / frontend / process
Формат записи:
- [2026-04-28T15:00:00.000Z] [perf] Decision: ...
GitHub Integration (Phase 49.3)
Webhook-based notifications + UI feed для привязанных GitHub repos.
arc github link <project> <owner/repo>
Привязать repo к проекту. Возвращает webhook URL, secret и пошаговые инструкции для GitHub repo Settings → Webhooks.
arc github link arc-v2 SerhiiInUa/citadel-v2
Вывод:
✓ Repo linked.
Webhook URL: https://arc-os.co/api/webhooks/github
Webhook secret: <32-byte hex>
Setup instructions:
1. Go to https://github.com/SerhiiInUa/citadel-v2/settings/hooks
2. Click "Add webhook"
3. Payload URL: https://arc-os.co/api/webhooks/github
4. Content type: application/json
5. Secret: <secret>
6. Events: Push, Pull requests, Workflow runs, Issues
arc github links [project]
Список привязанных repos для проекта (default: ARC_PROJECT env).
arc github links arc-v2
arc github unlink <project> <id>
Удали link по id (из arc github links).
arc github unlink arc-v2 3
Поддерживаемые события: push, pull_request, workflow_run, issues (95% use cases).
Что получаешь после setup:
- Telegram уведомление project owner на каждое событие (icon + summary + GitHub link)
- Sidebar feed в Workspace ContextRail (polls 30s, последние 8 events)
Подробный setup гайд: GitHub Integration Setup.
Нейронная память
arc memory refresh
Полная пересинхронизация всех источников знаний проекта с NotebookLM.
arc memory refresh
Вывод:
Refreshing neural memory...
Synced: 12 | Errors: 0
Sources:
- wiki/architecture.md
- wiki/deploy-guide.md
- issues/open
Timeout: 30 секунд (увеличен из-за объёма синхронизации).
arc memory fetch-artifact [--type <artifact_type>]
Загрузить артефакт из NotebookLM (аудио-обзор и т.д.).
arc memory fetch-artifact # audio_overview за замовчуванням
arc memory fetch-artifact --type audio_overview # явно вказати тип
Timeout: 60 секунд.
Переменные окружения
Устанавливаются автоматически при arc start, но можно задать вручную для использования subcommands вне сессии.
| Переменная | Описание | Авто | Вручную |
|---|---|---|---|
ARC_PROJECT |
Техническое название проекта | да | да |
ARC_SERVER_URL |
URL сервера Arc OS | да | да |
ARC_TOKEN |
JWT-токен авторизации | да | да |
ARC_ROLE |
Роль сессии (clceo, developer и т.д.) |
да | да |
ARC_WORKER_ID |
ID воркера (из workers_registry.json) |
да | нет |
ARC_WORKER_LABEL |
Отображаемое имя воркера | да | нет |
Пример ручного использования (вне arc start):
export ARC_PROJECT=my-project
export ARC_SERVER_URL=https://arc-os.co
export ARC_TOKEN=eyJhbGciOiJIUzI1NiI...
arc issues
arc learnings
Мониторинг сессий
При arc start автоматически запускается background watcher, который:
- Находит новый
.jsonlфайл в~/.claude/projects/{normalized-cwd}/ - Каждые 3 секунды читает новые строки из transcript
- Парсит
userиassistantсообщения - Отправляет их на
POST /api/cli/chat-log/:project(fire-and-forget) - Контент обрезается до 10 000 символов на сообщение
Watcher некритичен — ошибки игнорируются, сессия продолжает работать даже если CRM недоступен.
Примеры использования
Типичный рабочий процесс
# 1. Авторизуйся (одноразово)
arc login
# 2. Переглянь доступні проєкти
arc projects
# 3. Запусти сесію
arc my-project dev
# --- Усередині Claude сесії: ---
# 4. Переглянь відкриті задачі
arc issues
# 5. Створи нову задачу
arc issue create --title "Add dark mode" --priority P1 --labels "ux,frontend"
# 6. Логуй прогрес
arc issue log 42 "Started implementation"
arc issue log 42 "Toggle component ready, testing system preference detection"
# 7. Оновлюй wiki
arc wiki update --file "architecture" --content "# Architecture\n\nUpdated with dark mode module..."
# 8. Оновлюй roadmap
arc roadmap sync --phase 45 --status "IN PROGRESS"
# 9. Завантаж навичку за потреби
arc skill crm-api-reference
# 10. Переглянь learnings
arc learnings
# 11. Закрий задачу
arc issue update 42 --status closed
# 12. Відправ звіт
arc report --summary "Implemented dark mode with system preference detection" \
--files "theme.ts,App.tsx,DarkModeToggle.tsx" \
--decisions "Used CSS custom properties for theming"
Синхронизация памяти
arc memory refresh
arc memory fetch-artifact --type audio_overview
Работа с несколькими проектами
# Сессия для первого проекта
arc project-alpha dev
# В другом терминале — сессия для второго
arc project-beta dev --role clceo
Timeouts
| Операция | Timeout |
|---|---|
| Стандартные API-запросы | 15 секунд |
arc memory refresh |
30 секунд |
arc memory fetch-artifact |
60 секунд |
| Device code flow (login) | определяется сервером (expires_in) |