CLI

Use o Mira pelo terminal, em scripts e em agentes de IA.

A CLI mira chama a API REST do Mira pelo terminal, para consultas, scripts e agentes de IA que leem e atualizam reports sem navegador. Ela faz tudo o que o dono do token pode fazer na API. Para agentes com permissões limitadas por token e por projeto, use o MCP.

Instalar

A CLI precisa do Node 24 ou mais novo. O Mira serve o pacote sem login:

npm install --global https://mira.example.com/downloads/mira-cli.tgz
mira --version

/downloads/mira-cli.tgz redireciona para a versão mais recente. Para atualizar, rode o mesmo comando. Para fixar uma versão, instale pela URL dela:

npm install --global https://mira.example.com/downloads/sdk/mira-cli-0.1.0.tgz

Entrar

mira login --url https://mira.example.com

A CLI pede email e senha no terminal, sem mostrar a senha, e cria um token pessoal chamado mira-cli@<hostname>. Fora de um terminal interativo, a senha vem do stdin, para não ficar no histórico do shell:

printf '%s\n' "$SENHA" | mira login --url https://mira.example.com --email pessoa@empresa.com

Quem entrou só pelo Google não tem senha: defina uma em Definir senha, no menu do perfil, ou use um token pessoal. Com um token pessoal mira_pat_ que você já criou, use mira login --url https://mira.example.com --token mira_pat_.... Tokens de agente do MCP não funcionam na CLI.

A credencial fica em ~/.config/mira/config.json ou em $XDG_CONFIG_HOME/mira/config.json, com modo 0600. As variáveis MIRA_URL e MIRA_TOKEN têm precedência sobre o arquivo, o que serve para CI e containers.

  • mira whoami mostra a URL e o usuário do token em uso.
  • mira logout revoga o token no Mira e apaga o arquivo.

Comandos

Cada rota da API vira um comando, com o nome da rota em kebab-case: list-projects, list-reports, get-report, update-report, create-comment, upload-attachment. Rotas que não aceitam token pessoal ficam de fora, como as do widget, da ingestão de erros e da API de consulta.

Para descobrir os comandos:

  • mira commands lista os comandos, e mira commands --json devolve a lista em JSON.
  • mira describe <comando> mostra as flags e o JSON Schema da entrada e da saída.
  • mira <comando> --help resume as flags.

Os campos de nível superior viram flags: reportId vira --report-id. Um campo com o nome de uma opção da CLI ganha o prefixo da parte, como o texto do comentário, que vira --body-body.

OpçãoEfeito
--body <json|@arquivo|->Body inteiro em JSON, de um arquivo ou do stdin. As flags de campo sobrescrevem o JSON
--file <caminho>Arquivo de um campo de upload, como o anexo de upload-attachment
--output <arquivo>Grava a resposta binária, como o conteúdo de um anexo
--allSegue o cursor das listagens e junta os itens, até --max-items (padrão 1000)
--dry-runMostra o request sem enviar

A CLI valida a entrada com o schema da rota antes de enviar.

mira list-reports --project-id <id> --status triaged --all
mira get-report --report-id <id>
mira update-report --report-id <id> --status in_progress --assignee-id <user id>
mira create-comment --report-id <id> --body-body "Corrigido no PR owner/repo#42"
mira upload-attachment --report-id <id> --id "$(uuidgen | tr A-Z a-z)" --kind screenshot --name tela.png --file tela.png
mira get-attachment-content --attachment-id <id> --output tela.png

Migrações

Um admin conduz as migrações entre instâncias pela CLI, com o token pessoal de um admin. São 12 comandos de administração, gerados das rotas:

ComandoFaz
create-migration-token, list-migration-tokens, revoke-migration-tokenEmite, lista e revoga tokens de migração
preview-migrationLê a outra instância e devolve os projetos e as contagens
create-migrationComeça uma migração, trazendo ou enviando
list-migrations, get-migrationLista as migrações e mostra o detalhe
list-migration-failures, list-migration-noticesLista as falhas e os avisos de uma migração
resume-migration, retry-migration-failures, cancel-migrationRetoma, refaz as falhas e cancela

As rotas que a outra instância chama com o token mira_mig_ (exportação e importação) não viram comandos. Veja Migrações para o fluxo.

Saída e códigos de saída

O sucesso sai em JSON no stdout. O erro sai no stderr, como { "error": { "code", "message", "details" } }, com um código de saída por tipo:

CódigoErro
0Sucesso
1Erro genérico, inclusive falha de rede
2Entrada inválida (validation_failed)
3Sem credencial, token recusado ou sem permissão (unauthorized, forbidden)
4Não encontrado (not_found)
5Conflito (conflict)

Uso em CI

Defina MIRA_URL e MIRA_TOKEN no ambiente do job e chame os comandos direto, sem mira login:

- run: npm install --global https://mira.example.com/downloads/mira-cli.tgz
- run: mira list-reports --project-id "$MIRA_PROJECT_ID" --status new --all
  env:
    MIRA_URL: https://mira.example.com
    MIRA_TOKEN: ${{ secrets.MIRA_TOKEN }}

Uso por agentes

mira agent-guide imprime, em Markdown, o fluxo para implementar um report e as regras que o agente segue: um report por vez, nunca marcar resolved por conta própria e alterar o report só a pedido da pessoa. É o mesmo fluxo do prompt implement_report do MCP. Uma linha no AGENTS.md ou no CLAUDE.md do repositório da app basta para o agente encontrar o guia:

Reports do Mira: rode `mira agent-guide` antes de pegar um report.

A CLI não pede confirmação. A trava fica nas permissões do agente sobre os comandos de shell: libere as leituras e deixe as escritas pedirem aprovação. No Claude Code, por exemplo, em .claude/settings.json:

{
  "permissions": {
    "allow": [
      "Bash(mira list-projects:*)",
      "Bash(mira list-reports:*)",
      "Bash(mira get-report:*)",
      "Bash(mira list-comments:*)",
      "Bash(mira get-attachment-content:*)"
    ]
  }
}

Toda escrita pela CLI grava a origem cli na atividade do report, só para auditoria. O comentário aparece como da pessoa, sem o selo "via agente".

CLI ou MCP

CLIMCP
CredencialToken pessoal, o mesmo da extensãoToken de agente, só no /mcp
AlcanceTudo o que o dono do token faz na APILeitura de reports, comentar e alterar, dentro do teto do projeto
EvidênciaQualquer anexo que o dono vêSó os tipos liberados no token e no teto. Nunca replay
ConfirmaçãoPermissões de shell do agenteO cliente MCP pede a cada update_report
Origem na atividadeclimcp, com o rótulo agente

Prefira o MCP quando o projeto testa com dados reais ou quando o agente não deve ver tudo o que a pessoa vê. Use a CLI em scripts, em agentes sem suporte a MCP e em operações fora das tools do MCP.

Próximos passos

Nesta página