ARC CLI — Referência de comandos
ARC CLI é a ferramenta de linha de comando para interagir com o Arc Cloud. Gerencie projetos, issues, wiki e skills diretamente do terminal.
- Código-fonte:
clients/arc-cli.ts - Cliente API:
clients/lib/api.ts - Build:
scripts/build-arc.sh(binary compilado)
Instalação e configuração
A configuração é salva em ~/.arc/config.json (server_url, token, connected_at).
arc login [server_url]
Autenticação via device code flow. Abre o navegador para confirmação.
arc login # сервер за замовчуванням: https://arc-os.co
arc login https://my-server.com # кастомний сервер
Após executar, o CLI exibe uma URL e um código de uso único. Abra a URL no navegador, confirme a autorização — o CLI receberá o token automaticamente.
arc login --token <token>
Autenticação direta por token (para automação ou quando o device flow não está disponível).
arc login --token eyJhbGciOiJIUzI1NiI...
O CLI valida o token via API antes de salvar.
arc logout
Remove as credenciais de ~/.arc/config.json e limpa o bloco ARC do CLAUDE.md (se existir).
arc logout
arc projects
Lista os projetos disponíveis no servidor.
arc projects
Saída:
Available projects:
Name Type Status
--------------------------------------------------
arc-v2 bot running
my-project bot unknown
Iniciando uma sessão
arc <project> [mode]
Inicializa uma sessão Claude com o contexto completo do projeto. Equivalente a arc start <project> [mode].
arc my-project dev # режим dev (за замовчуванням)
arc my-project prod # режим prod
arc --role clceo my-project # з роллю CEO
O que acontece ao iniciar:
- Requisição
GET /api/cli/init/:project/:mode— obtém CLAUDE.md, configuração de workers e skills - Session-start picker (issue #115) — seleção interativa do issue ativo para a sessão: issues abertas (ordenadas P0→P3 + mais recentes primeiro, filtro fuzzy se >10), fechadas recentemente (com confirmação de reabertura ao selecionar),
[n]criar novo,[q]pular com confirmação dupla. O id selecionado é salvo em~/.arc/sessions/<project>-<worker>.jsoncomoactive_issue_id - Injeção de contexto no
CLAUDE.mdlocal (bloco ARC Cloud + blocoActive issue: #N — Title) - A variável de ambiente
ARC_ACTIVE_ISSUE_ID=<id>é passada para o subprocess Claude — a ferramenta Bash a enxerga paraarc issue logsem re-prompt - Limpeza de entradas depreciadas do
.mcp.json(se houver) - Inicialização do subprocess
claudecom interatividade TTY - Início do watcher em background (veja "Monitoramento de sessões")
Parâmetros:
| Parâmetro | Descrição |
|---|---|
project |
Nome técnico do projeto (ex.: arc-v2) |
mode |
dev (padrão) ou prod |
--role <role> |
Papel da sessão (ex.: clceo, developer) |
Bypass não interativo: ARC_ISSUE_ID=42 arc my-project dev pula o picker e usa o id informado (para CI/scripts).
Troca durante a sessão: arc issue switch <id> (em um terminal paralelo) altera o issue ativo — registra switched_away no anterior e switched_in no novo. A sessão atual usará o novo id após reiniciar.
arc continue <project> [mode]
Retoma a última sessão Claude Code (janela de 24 horas). Restaura automaticamente o active_issue_id sem re-prompt.
arc continue my-project # підхопити попередню сесію + active issue
arc continue my-project --reselect-issue # force re-run picker
arc tour
Onboarding interativo de 5 etapas no terminal (espelha o checklist web). O progresso é sincronizado com o dashboard web.
arc tour
Gerenciamento de issues
arc issues [--status <filter>]
Lista as issues do projeto.
arc issues # тільки open (за замовчуванням)
arc issues --status closed # тільки закриті
arc issues --status all # всі задачі
Saída:
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]
Crie uma nova issue.
arc issue create --title "Add dark mode" --priority P1 --labels "ux,frontend"
arc issue create --title "Fix bug" --body "Detailed description here" --priority P0
Parâmetros:
| Parâmetro | Obrigatório | Descrição | Padrão |
|---|---|---|---|
--title <text> |
sim | Título da issue | — |
--body <text> |
não | Descrição detalhada | — |
--priority <level> |
não | P0 / P1 / P2 / P3 |
P2 |
--labels <list> |
não | Labels separadas por vírgula: bug,ux |
— |
arc issue update <id> [options]
Atualiza uma issue existente.
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"
Parâmetros:
| Parâmetro | Descrição |
|---|---|
--status <status> |
open ou closed |
--title <text> |
Novo título |
--body <text> |
Nova descrição |
--priority <level> |
P0 / P1 / P2 / P3 |
Pelo menos um parâmetro é necessário para atualizar.
arc issue log <id> "<text>" [--author <name>]
Adiciona um registro de progresso à issue (log de atividade).
arc issue log 12 "Started implementation"
arc issue log 12 "Dark mode toggle works" --author "developer"
Parâmetros:
| Parâmetro | Obrigatório | Descrição | Padrão |
|---|---|---|---|
id |
sim | Número da issue | — |
text |
sim | Texto do registro | — |
--author <name> |
não | Nome do autor | cli |
O backend (POST /api/mcp/issues/:project/:id/log) aceita os campos opcionais type (whitelist: log / session_start / session_end / switched_in / switched_away / auto_summary / reopened) e ts (ISO-8601 para entradas backdated; datas futuras são limitadas ao momento atual). Usado internamente pelo session-start picker (#115) e pelo arc retro (#117).
arc issue switch <id>
Altera o issue ativo da sessão atual (issue #115). Salva em ~/.arc/sessions/<project>-<worker>.json, registra switched_away na issue anterior e switched_in na nova.
arc issue switch 42
arc issue switch 42 --worker consultant # для конкретного worker (default: developer)
Validação: a issue deve existir e estar open. Se estiver fechada, execute primeiro arc issue update <id> --status open.
arc retro <project> [options]
Reconstrói issues retroativamente a partir do histórico de sessões e do git log (issue #117). Escaneia ~/.arc/sessions/<project>-*.json, lê o primeiro prompt do usuário no transcript JSONL e coleta commits via 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
O que é ignorado automaticamente:
| Tipo | Motivo |
|---|---|
| Sessões vinculadas | active_issue_id já definido (pós-#115) |
| Sessões de warm-up | 0 commits + prompt trivial (hi, test, continue) |
| Duplicatas | Similaridade de título Jaccard ≥0.55 + sobreposição de ±48h com issue existente |
Anteriores a --since |
Fora da janela definida |
O que acontece com --apply:
createIssuepara cada candidato (priority=P2, label=retro)- Entradas de atividade backdated:
session_start(started_at) +auto_summarypor commit (timestamp do commit) +session_end(ended_at) — viaPOST /logcom campots - Sessões com >30 dias e commits →
status=closedimediatamente. Sessões recentes não finalizadas →status=open.
Skills e conhecimento
arc skill <name>
Carrega uma skill do Cloud. Exibe as instruções da skill e os evals (se houver).
arc skill consultant_system
arc skill crm-api-reference
Requer a variável ARC_PROJECT (definida automaticamente ao executar arc start).
Se a skill não for encontrada, o CLI exibe a lista das disponíveis.
arc kb search "<query>"
Pesquisa na wiki do projeto. Busca por palavras-chave nos nomes dos arquivos e retorna até 5 melhores resultados (conteúdo limitado a 2.000 caracteres).
arc kb search "deployment"
arc kb search "arc-cli"
arc learnings
Regras acumuladas e correções de todas as sessões do projeto.
arc learnings
Saída:
- [cli] Always validate project name before API calls
- [deploy] Test nginx config before reload
Wiki e Roadmap
arc wiki update --file <name> --content "..."
Crie ou atualize uma página da wiki do projeto.
arc wiki update --file "architecture" --content "# Architecture\n\nMain components..."
arc wiki update --file "deploy-guide" --content "$(cat my-doc.md)"
Parâmetros:
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
--file <name> |
sim | Nome da página (sem .md) |
--content <text> |
sim | Conteúdo em Markdown |
Saída: Wiki created: architecture.md (342 bytes) ou Wiki updated: ...
arc roadmap sync --phase <id> --status <text> [--notes "..."]
Atualiza o status de uma fase no roadmap do projeto.
arc roadmap sync --phase 45 --status "IN PROGRESS"
arc roadmap sync --phase 44 --status "DONE" --notes "All analytics redesigned"
Parâmetros:
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
--phase <id> |
sim | ID da fase (ex.: 38.1, 45) |
--status <text> |
sim | Status: DONE, IN PROGRESS, PLANNED etc. |
--notes <text> |
não | Notas sobre a fase |
Relatórios
arc report --summary "..." [options]
Envia o relatório da sessão para o 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"
Parâmetros:
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
--summary <text> |
sim | Resumo curto do que foi feito |
--files <list> |
não | Arquivos alterados separados por vírgula |
--decisions <list> |
não | Decisões-chave separadas por vírgula |
Documentation Enforcement (Phase 49.1-49.2.1)
O ARC possui um sistema integrado que mantém a documentação atualizada sem precisar de lembretes manuais. Funciona em conjunto com o pre-push git hook (scripts/check-docs-coverage.ts).
arc wrapup
Checklist somente leitura — mostra quais docs precisam ser atualizados para commits ainda não enviados.
arc wrapup
Delega para scripts/check-docs-coverage.ts. Mapeamento:
| Alteração de código / commit | O que é esperado |
|---|---|
shared/migrations/* |
docs/public/architecture/database-schema.md |
shared/routes/* |
docs/public/api/api-reference.md |
Phase NN na mensagem de commit |
docs/ROADMAP.md + docs/status/current-state.json |
| ≥3 arquivos de backend & ≥50 LOC | learnings.md |
arc wrapup --generate
Gera automaticamente entradas esqueleto para docs ausentes. Escreve stubs marcados com TODO em:
learnings.md— timestamp + escopo detectado automaticamente (api/backend/frontend/infra/process)docs/ROADMAP.md— cabeçalho Phase NN + resumo do commitdocs/status/current-state.json— bump de versão + alteração adicionada no início
arc wrapup --generate
# далі: review через `git diff`, заміни TODO на реальний контент, commit
Os marcadores TODO são intencionais e não passarão em revisão — o que é gerado é a estrutura, não o conteúdo.
arc wrapup --from-summary "<text>"
Registra uma pesquisa, decisão ou descoberta diretamente no learnings.md sem precisar de um commit de código. Resolve o ponto cego de trabalho sem commits de código (análise de capacidade, comparação de brokers, avaliação de trade-offs).
arc wrapup --from-summary "Decision: rejected Redis for single-VPS — broker overhead unjustified for 10KB/msg, 1-to-1 FIFO. fs.watch sufficient."
O CLI classifica automaticamente:
- Tipo: decision / lesson / finding / spike (regex hints)
- Escopo: infra / perf / security / api / frontend / process
Formato da entrada:
- [2026-04-28T15:00:00.000Z] [perf] Decision: ...
Integração com GitHub (Phase 49.3)
Notificações via webhook e feed na UI para repositórios GitHub vinculados.
arc github link <project> <owner/repo>
Vincula um repositório ao projeto. Retorna a URL do webhook, o secret e instruções passo a passo para GitHub repo Settings → Webhooks.
arc github link arc-v2 SerhiiInUa/citadel-v2
Saída:
✓ 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]
Lista os repositórios vinculados ao projeto (padrão: variável de ambiente ARC_PROJECT).
arc github links arc-v2
arc github unlink <project> <id>
Remove um vínculo pelo id (obtido via arc github links).
arc github unlink arc-v2 3
Eventos suportados: push, pull_request, workflow_run, issues (95% dos casos de uso).
O que você ganha após a configuração:
- Notificação Telegram para o dono do projeto a cada evento (ícone + resumo + link do GitHub)
- Feed na barra lateral do Workspace ContextRail (polling a cada 30s, últimos 8 eventos)
Guia detalhado de configuração: GitHub Integration Setup.
Memória neural
arc memory refresh
Ressincronização completa de todas as fontes de conhecimento do projeto com o NotebookLM.
arc memory refresh
Saída:
Refreshing neural memory...
Synced: 12 | Errors: 0
Sources:
- wiki/architecture.md
- wiki/deploy-guide.md
- issues/open
Timeout: 30 segundos (aumentado devido ao volume de sincronização).
arc memory fetch-artifact [--type <artifact_type>]
Baixa um artefato do NotebookLM (áudio de revisão etc.).
arc memory fetch-artifact # audio_overview за замовчуванням
arc memory fetch-artifact --type audio_overview # явно вказати тип
Timeout: 60 segundos.
Variáveis de ambiente
Definidas automaticamente ao executar arc start, mas podem ser configuradas manualmente para usar subcomandos fora de uma sessão.
| Variável | Descrição | Auto | Manual |
|---|---|---|---|
ARC_PROJECT |
Nome técnico do projeto | sim | sim |
ARC_SERVER_URL |
URL do servidor Arc OS | sim | sim |
ARC_TOKEN |
Token JWT de autenticação | sim | sim |
ARC_ROLE |
Papel da sessão (clceo, developer etc.) |
sim | sim |
ARC_WORKER_ID |
ID do worker (de workers_registry.json) |
sim | não |
ARC_WORKER_LABEL |
Nome de exibição do worker | sim | não |
Exemplo de uso manual (fora do arc start):
export ARC_PROJECT=my-project
export ARC_SERVER_URL=https://arc-os.co
export ARC_TOKEN=eyJhbGciOiJIUzI1NiI...
arc issues
arc learnings
Monitoramento de sessões
Ao executar arc start, um watcher em background é iniciado automaticamente e:
- Localiza o novo arquivo
.jsonlem~/.claude/projects/{normalized-cwd}/ - A cada 3 segundos, lê as novas linhas do transcript
- Faz o parse das mensagens
usereassistant - As envia para
POST /api/cli/chat-log/:project(fire-and-forget) - O conteúdo é limitado a 10.000 caracteres por mensagem
O watcher não é crítico — erros são ignorados e a sessão continua funcionando mesmo se o CRM estiver indisponível.
Exemplos de uso
Fluxo de trabalho típico
# 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"
Sincronização de memória
arc memory refresh
arc memory fetch-artifact --type audio_overview
Trabalhando com múltiplos projetos
# Sessão para o primeiro projeto
arc project-alpha dev
# Em outro terminal — sessão para o segundo
arc project-beta dev --role clceo
Timeouts
| Operação | Timeout |
|---|---|
| Requisições API padrão | 15 segundos |
arc memory refresh |
30 segundos |
arc memory fetch-artifact |
60 segundos |
| Device code flow (login) | Definido pelo servidor (expires_in) |