Todos os comandos da CLI

Todo comando do autodev, exatamente como a CLI o declara: a assinatura, as flags, os padrões e o que ele imprime.

O autodev sem comando #

autodev sem comando nunca abre uma UI de terminal: o painel do VS Code é a única interface. O autodev sem comando é texto, e retoma o que uma reinicialização ou uma falha deixou para trás:

usage
autodev

Executar e acompanhar #

Estes comandos iniciam uma execução e a leem de volta.

autodev start #

usage
autodev start

Inicia a execução deste projeto, ou a retoma. Imprime Thread run started or already running. Não aceita argumentos nem flags: o que a execução faz vem de autodev send. Iniciar é uma intenção de continuar, então ele limpa um pedido de pausa que tenha ficado para trás.

autodev status #

usage
autodev status [--json]

Imprime o estado da execução: o projeto, o status, se o daemon está vivo, a tarefa atual, a iteração, o custo estimado, o último heartbeat (marcado com (stalled?) quando uma execução ativa fica 40 minutos em silêncio), quando a execução retoma, se o servidor web está no ar e, numa execução que espera, o que ela espera. --json imprime o envelope de estado legível por máquina (Command v1 StateSubset) em vez de texto.

autodev attach #

usage
autodev attach [--json]
autodev watch [--json]

Acompanha a atividade ao vivo do daemon e volta quando a execução termina. Ctrl+C só desconecta, e o daemon continua rodando. watch é um alias de attach. --json emite Envelope v1 NDJSON (RelayEnvelope) em vez de texto para pessoas.

autodev thread #

usage
autodev thread

Imprime a thread compartilhada: quem disse o quê, do mais antigo ao mais novo. Uma mensagem sua que nenhuma execução leu ainda aparece no fim como Queued for next run.

autodev report #

usage
autodev report [--hours <n>] [--json]

O que rodou durante a noite: trabalho feito, o que travou, cota gasta, o que precisa de você. --hours <n> define a janela do relatório em horas, e o padrão é 12. --json emite o modelo de visualização como JSON em vez de texto.

autodev quota #

usage
autodev quota [--days <n>] [--series] [--json]

A capacidade da assinatura usada, deixada ociosa e convertida em commits. --days <n> define o período do relatório em dias, e o padrão é 7. --series imprime buckets por dia e por provider em vez dos totais do período. --json emite o modelo de visualização como JSON em vez de texto.

Falar com a execução #

A thread é a única entrada. Estes comandos põem algo nela, ou respondem ao que um participante colocou diante de você.

autodev send #

usage
autodev send [--image <file>]... [--no-start] "<message>"

Posta uma mensagem na thread compartilhada. A primeira mensagem é o objetivo, e cada uma das seguintes conduz a execução. Cada mensagem também é escrita em .autodev/goal.md, sob um título com a hora, então o objetivo é um arquivo que você pode editar. Várias palavras são juntadas em uma única mensagem.

Se nenhuma execução está viva, send inicia uma e imprime Message sent; run started. Se há uma execução viva, ele enfileira a mensagem para ela e imprime Message queued.

Um projeto só roda quando tem um time que esta máquina confirmou. Antes disso, send imprime set up the team before sending a message e sai com código 1; autodev team monta um time. Uma mensagem vazia é recusada.

FlagPadrãoO que faz
--image <file>nenhumAnexa uma imagem à mensagem. Repita a flag para mais, até 6 imagens de no máximo 8 MB cada. Só arquivos de imagem são aceitos.
--no-startdesligadaEnfileira a mensagem e não inicia uma execução.

autodev answer #

usage
autodev answer <noticeId> <text...>

Responde a um aviso: uma mensagem que um participante deixou para você enquanto a execução seguia. A resposta chega a esse participante em um turno posterior, e ela levanta a retenção que o aviso pôs sobre uma capacidade, a menos que você tenha segurado o aviso. O id é o que está em notices.json, n- seguido de oito dígitos hexadecimais. Com um id que nenhum aviso tem, imprime No notice with id <id>. e sai com código 1. O painel responde a um aviso sem pedir o id.

autodev notice #

usage
autodev notice hold <id>
autodev notice release <id>
autodev notice dismiss <id>

Muda um aviso sem respondê-lo. hold mantém o aviso aberto, e mantém suspensa a capacidade que ele suspendeu, até você liberá-lo: uma resposta ou uma mensagem sua deixam de soltá-lo. release encerra a retenção e levanta a suspensão. dismiss fecha o aviso sem resposta. Cada um imprime Notice updated., e um id desconhecido imprime No notice with id <id>. e sai com código 1.

Conduzir a execução #

Estes comandos mudam uma execução que já existe.

autodev pause #

usage
autodev pause

Pede uma pausa e imprime Pause requested.

autodev resume #

usage
autodev resume

Pede a retomada. Se o daemon saiu, rode autodev start para iniciá-lo de novo.

autodev stop #

usage
autodev stop

Encerra o daemon com cuidado, depois da iteração atual.

autodev kill #

usage
autodev kill

Mata à força a árvore de processos do daemon, fecha o navegador que a execução manteve aberto e volta o estado para ocioso. Ele diz qual de duas coisas aconteceu: encerrou um daemon em execução e o agente que ele tinha iniciado, e o que estava inacabado pode ter ficado pela metade na árvore de trabalho; ou nada estava rodando, e ele limpou o estado que tinha sobrado.

autodev approve #

usage
autodev approve

Aprova o gate pendente de ação irreversível e inicia o daemon de novo, para que a ação seja executada. Ele se recusa, e diz por quê, quando não há gate pendente, quando a execução não está esperando no gate, ou quando uma mensagem sua está na fila e pode retirar o gate.

autodev deny #

usage
autodev deny

Nega o gate pendente: a ação nunca é executada. Rode autodev start para continuar a execução. Ele se recusa nos mesmos casos que approve.

autodev new-run #

usage
autodev new-run [--yes]

Recomeça do zero. Arquiva as sessões, a thread, os eventos e o estado da execução concluída, e limpa goal.md e memory.md, para que a próxima execução não retome a conversa da noite anterior. Uma cópia de cada um dos dois arquivos vai para o arquivo antes, e os participantes ficam intactos. O arquivo é uma pasta com o nome do dia, .run-YYYY-MM-DD, ao lado do estado da execução nesta máquina, e new-run imprime onde ela está.

Como esvazia dois arquivos que você escreveu, ele avisa e pergunta Start a new run? antes de mover qualquer coisa. --yes pula a pergunta. Ele se recusa enquanto um daemon está rodando e aponta para autodev stop. Quando terminar, escreva o novo objetivo com autodev send.

Time e providers #

O time é o conjunto de participantes em .autodev/participants/, um arquivo cada. O arquivo de participante descreve o arquivo.

autodev team #

usage
autodev team

Imprime Team: e o seu estado, depois uma linha por participante: o id, o provider, e o modelo e o esforço, cada um mostrado como default quando não está definido. O estado é ready para um time que esta máquina confirmou, confirm para um time que veio com o projeto e ainda não foi confirmado aqui, use_default quando não há time e existe um time padrão nesta máquina, e setup quando ainda não há nada.

autodev team add #

usage
autodev team add <provider>

Adiciona um participante que roda em um provider. claude, codex e antigravity são os que o AutoDev conduz hoje. O id é o nome do provider, ou claude-2, claude-3 quando o nome já está em uso. Ele começa sem fixação, no modelo padrão do provider. Imprime o id e confirma o time nesta máquina.

autodev team remove #

usage
autodev team remove <id>

Remove um participante apagando o seu arquivo. É recusado enquanto esse participante está em um turno.

autodev team rename #

usage
autodev team rename <id> <to>

Renomeia um participante. A conversa dele acompanha o novo nome. É recusado enquanto esse participante está em um turno. O agendador desempata em ordem alfabética, então o nome também decide quem abre uma thread.

autodev team pin #

usage
autodev team pin <id> [--model <model>] [--effort <effort>]

Fixa o modelo e o esforço de um participante, escritos no arquivo dele. Nenhum dos dois é conferido contra uma lista, porque os providers acrescentam valores próprios. Ele recusa um id que não está no time.

autodev team unpin #

usage
autodev team unpin <id>

Remove a fixação, e o participante volta ao modelo e ao esforço padrão.

autodev team confirm #

usage
autodev team confirm

Confirma o time nesta máquina. Um time que veio com o projeto não roda até você confirmar, porque um arquivo de participante vira flags e instruções para uma CLI. Imprime Team confirmed.

autodev team default #

usage
autodev team default use
autodev team default save

O time padrão pertence a esta máquina e é o time de que um projeto novo parte. O primeiro time que você monta é salvo como padrão sozinho; depois disso só save o muda. use copia o time padrão para este projeto e o confirma. save salva o time deste projeto como o padrão.

autodev team template #

usage
autodev team template
autodev team template <name> [--provider <id=cli>]... [--yes]

Sem nome, lista os modelos: solo (um participante, builder), builder-reviewer (um construtor e um revisor que confere cada mudança) e manager-builder-reviewer (um gerente que atribui blocos, um construtor e um revisor). Com um nome, aplica um: escreve os participantes do modelo, remove os outros participantes do projeto e confirma o time.

--provider <id>=<cli> define a CLI de um participante do modelo, e pode ser repetida. Um id que não está no modelo é um erro. Se o projeto já tem participantes, o comando lista os arquivos que substituiria e pede --yes. É recusado enquanto um participante está em um turno.

autodev team edit #

usage
autodev team edit <id>

Imprime o caminho do arquivo de instruções de um participante. Não o abre.

autodev providers #

usage
autodev providers
autodev providers use <provider> <binPath>

Lista as CLIs de agente adotadas nesta máquina, uma por linha como name: path, com PATH quando a CLI é encontrada no PATH. Sem nenhuma, imprime No providers adopted on this machine. use registra o binário a executar para um provider, para uma CLI instalada fora do PATH. O login continua com a CLI do próprio provider: o AutoDev nunca pede nem guarda uma credencial.

Checkpoints e projetos #

O AutoDev grava um checkpoint conforme a execução avança. Estes comandos os listam, voltam a um deles e listam os projetos da máquina.

autodev restore #

usage
autodev restore [<id>]

Sem id, lista os checkpoints do AutoDev. Com um id, volta o código para aquele checkpoint e imprime onde ele chegou, e a branch que guardou o trabalho de que ele se afastou, quando há uma.

Ele se recusa enquanto um daemon está rodando, imprime Stop the run before restoring — restore resets the project tree. e sai com código 1.

autodev workspaces #

usage
autodev workspaces
autodev workspaces forget <path>

Lista todo projeto do AutoDev nesta máquina. forget <path> tira um do índice de workspaces. Qualquer outra ação, ou forget sem caminho, imprime um erro e sai com código 1.

Configurações e estado #

Estes comandos leem os arquivos que o AutoDev guarda de um projeto. As chaves, os padrões e as variáveis de ambiente de config têm página própria, Todas as chaves de configuração.

autodev config #

usage
autodev config
autodev config set <key> <value>
autodev config unset <key>

Vê ou muda as configurações da execução. Sem subcomando, imprime cada chave com o valor efetivo e de onde ele vem: uma variável de ambiente, o arquivo de configuração ou o padrão. set grava um valor e unset o remove. Algumas chaves pertencem à máquina e vão para ~/.autodev/config.json; as demais vão para o .autodev/config.json do projeto. set nunca imprime um valor secreto: imprime (hidden) no lugar.

autodev memory #

usage
autodev memory

Imprime .autodev/memory.md, ou (no memory yet) quando não há nenhum.

autodev browser login #

usage
autodev browser login <url>

Abre o perfil de navegador próprio do AutoDev, visível, numa página de login. Entre uma vez e o login permanece para todas as execuções seguintes. As ferramentas de navegador usam esse perfil, que é separado do seu navegador do dia a dia. O endereço precisa ser uma URL completa, com http:// ou https://.

Se uma execução tem esse navegador aberto e visível, a página abre numa nova aba dele, e você fecha a aba depois do login. Se a execução o mantém oculto, não há janela onde entrar, e o comando diz para entrar depois que a execução terminar. Sem Chrome nem Edge, ele pede que você aponte AUTODEV_BROWSER para um deles. O painel tem a mesma ação.

Servidores e interfaces de máquina #

Estes comandos servem o AutoDev a algo que não é uma pessoa em um terminal.

autodev serve #

usage
autodev serve [--daemon] [--port <n>] [--token <t>] [--tier <t>] [--tunnel]

Serve o plano web (eventos SSE e comandos POST) em 127.0.0.1, para uma UI local ou para a extensão. Ele não inicia uma execução. Sem --daemon, roda neste terminal. Qualquer ação além de stop e pair imprime um erro e sai com código 1.

FlagPadrãoO que faz
--daemondesligadaRoda separado e supervisionado. Sobrevive ao terminal e, depois de uma reinicialização, volta a subir quando você roda autodev em qualquer projeto.
--port <n>8787A porta a usar. 0 escolhe uma porta efêmera.
--token <t>geradoO token bearer que os clientes precisam apresentar. Usa AUTODEV_WEB_TOKEN quando ela está definida, e é gerado caso contrário.
--tier <t>fullO nível de telemetria do fluxo de eventos: status, events ou full. Qualquer outro valor é lido como full.
--tunneldesligadaExpõe o plano publicamente por um quick tunnel do cloudflared, para o check-in remoto.

Com --daemon, imprime o endereço e diz onde o token fica guardado, ~/.autodev/serve.json.

autodev serve pair #

usage
autodev serve pair

Pede ao servidor em execução um código de pareamento, e imprime o código, quando ele expira e, com um túnel no ar, o endereço público para abrir no celular. Sem servidor em execução, imprime remote access is not running e sai com código 1.

autodev serve stop #

usage
autodev serve stop

Encerra um servidor separado. Se não há nenhum, diz isso e limpa qualquer descritor antigo.

autodev mcp #

usage
autodev mcp

Serve as ferramentas do AutoDev para um participante por MCP stdio: a thread, a memória, os avisos e, quando estão ligadas, as ferramentas de navegador. A CLI de um participante o inicia, e ele encontra o projeto por AUTODEV_ROOT.

autodev dispatch #

usage
autodev dispatch <envelope>

Despacha um envelope Command v1, dado como JSON: a interface de máquina para comandos. Imprime uma linha JSON, ok, kind e result ou reason, e sai com código diferente de zero numa rejeição ou num envelope malformado.