Skip to content

Comando jarvis

O jarvis é o comando principal do Jarvis Code CLI, usado para iniciar uma sessão interativa no terminal. Executá-lo sem argumentos abre uma nova sessão no diretório de trabalho atual; combinado com diferentes flags, você pode retomar uma sessão anterior, pular aprovações, iniciar no Plan mode (modo de planejamento) ou carregar skills de um diretório personalizado.

sh
jarvis [options]
jarvis <subcommand> [options]

Opções do comando principal

Todas as flags são opcionais — execute jarvis diretamente para entrar em uma sessão interativa:

OpçãoCurtaDescrição
--version-VImprime o número da versão e sai
--help-hMostra a ajuda e sai
--session [id]-SRetoma uma sessão. Com um ID, abre aquela sessão diretamente; sem ID, entra em um seletor interativo
--continue-cContinua a sessão mais recente do diretório de trabalho atual, sem informar um ID manualmente
--model <model>-mInforma um alias de modelo para esta execução. Quando omitido, novas sessões usam o default_model do arquivo de configuração
--prompt <prompt>-pExecuta um único prompt de forma não interativa e imprime a resposta. Este modo não abre a TUI
--output-format <format>Define o formato de saída não interativo; aceita text e stream-json. Só pode ser usado com --prompt; o padrão é text
--yolo-yAprova automaticamente chamadas de ferramenta comuns, pulando os pedidos de aprovação
--autoInicia no modo de permissão auto; as aprovações de ferramenta são tratadas automaticamente e o agente não faz perguntas ao usuário
--planInicia uma nova sessão no Plan mode — a IA prioriza ferramentas somente leitura para exploração e planejamento
--skills-dir <dir>Carrega skills do diretório informado, substituindo os diretórios de usuário e de projeto descobertos automaticamente. Pode ser repetida
--agent <name>Inicia uma nova sessão com o perfil de agente informado. Não pode ser combinada com --agent-file, --session ou --continue
--agent-file <path>Carrega um agente personalizado de um arquivo Markdown para a nova sessão e o seleciona. Não pode ser repetida nem combinada com --agent, --session ou --continue
--add-dir <dir>Adiciona um diretório de workspace extra a esta sessão. Caminhos relativos são resolvidos a partir do diretório de trabalho atual. Pode ser repetida

-r / --resume é um alias oculto de --session; --yes e --auto-approve são aliases ocultos de --yolo e não aparecem na ajuda.

WARNING

O --yolo pula a aprovação humana de chamadas de ferramenta comuns, incluindo escrita em arquivos e execução de comandos de shell. Use apenas em diretórios de trabalho confiáveis. A aprovação de saída do Plan mode não é ignorada pelo --yolo; o Bash dentro do Plan mode segue as regras normais de allow.

Regras de conflito entre flags

As combinações a seguir são rejeitadas na inicialização:

  • --continue e --session são mutuamente exclusivas — ambas significam "retomar uma sessão anterior"
  • --yolo e --auto são mutuamente exclusivas — os dois modos de permissão não podem ser combinados
  • --prompt não pode ser usada com --yolo, --auto nem --plan — o modo não interativo usa permissão auto por padrão
  • --output-format só pode ser usada junto com --prompt
  • --prompt não pode ser usada com --session quando nenhum id é informado
  • --agent e --agent-file são mutuamente exclusivas; nenhuma delas pode ser usada com --session ou --continue

Ao retomar uma sessão, você pode sobrescrever o modo de permissão ou de plano salvo adicionando --auto, --yolo ou --plan. Por exemplo, jarvis --continue --auto retoma a sessão mais recente e a coloca no modo de permissão auto.

Uso comum

Iniciar uma nova sessão diretamente:

sh
jarvis

Continuar de onde parou (encontra automaticamente a sessão mais recente do diretório atual):

sh
jarvis --continue

Escolher na lista de histórico de sessões, ou informar um ID conhecido diretamente:

sh
jarvis --session
jarvis --session 01HZ...XYZ

Pular os pedidos de aprovação — adequado para tarefas em lote sabidamente seguras:

sh
jarvis --yolo

Deixar o agente conduzir tudo de forma autônoma, sem fazer perguntas:

sh
jarvis --auto

Ler o código e produzir um plano de implementação antes de qualquer alteração de arquivo:

sh
jarvis --plan

Diretórios de skills personalizados

Há duas formas de indicar diretórios de skills, com semânticas diferentes:

  • --skills-dir <dir> (flag de CLI): substitui os diretórios de usuário e de projeto descobertos automaticamente, apenas nesta execução. Pode ser repetida para empilhar vários diretórios:

    sh
    jarvis --skills-dir /caminho/para/team-skills --skills-dir ./local-skills
  • extra_skill_dirs (config.toml): acrescenta diretórios aos descobertos automaticamente, de forma permanente. Adequado para configurar skills compartilhadas de time. Veja Agent Skills.

Agentes personalizados

--agent e --agent-file selecionam qual agente conduz uma nova sessão, tanto no modo de prompt (jarvis -p) quanto na TUI interativa:

sh
jarvis --agent reviewer
jarvis -p --agent reviewer "Revise as mudanças deste branch"

O --agent-file registra um único arquivo de agente com a prioridade mais alta, apenas nesta execução, e o seleciona; a flag não pode ser repetida, e --agent e --agent-file são mutuamente exclusivas. Ambas só valem ao iniciar uma nova sessão — nenhuma pode ser combinada com --session ou --continue, porque o agente é vinculado na criação da sessão e a retomada restaura o agente vinculado automaticamente. A seleção é fixada no primeiro vínculo da sessão e não pode ser trocada depois; na TUI as flags vinculam apenas a sessão de inicialização, e uma sessão criada depois no mesmo processo (por exemplo, por /new) começa com o agente padrão. Veja Agentes e subagentes para o formato do arquivo de agente e os diretórios de descoberta.

Execução não interativa

Ao executar um único prompt em um script ou em CI, use -p:

sh
jarvis -p "Resuma o estado atual do repositório"

A saída usa um estilo de transcrição: o conteúdo de raciocínio e o texto do assistente recebem o prefixo , e linhas quebradas são indentadas com dois espaços. O texto do assistente vai para stdout; o raciocínio, o progresso de ferramentas e os avisos de "retomando sessão" vão para stderr. No modo -p nenhuma aprovação humana é pedida — chamadas de ferramenta comuns seguem a política de permissão auto, enquanto as regras estáticas de negação continuam valendo.

Trocar o modelo temporariamente:

sh
jarvis -m jarvis-code/kimi-for-coding -p "Explique o último diff"

Quando você precisa processar a saída programaticamente, use o formato stream-json — cada linha do stdout é um objeto JSON:

sh
jarvis -p "Liste os arquivos alterados" --output-format stream-json

No modo stream-json, respostas comuns produzem uma mensagem de assistente; quando o modelo chama uma ferramenta, uma mensagem de assistente com tool_calls é emitida primeiro, seguida da mensagem de ferramenta correspondente e então das mensagens de assistente seguintes. O conteúdo de raciocínio não é escrito no JSONL; o progresso de ferramentas e os avisos de "retomando sessão" continuam indo para stderr.

Subcomandos

O jarvis oferece os seguintes subcomandos: login (login não interativo), acp (modo ACP para IDEs), server (executa o serviço local de API REST/WebSocket), doctor (valida os arquivos de configuração), export (exporta uma sessão), upgrade (verifica atualizações), vis (visualizador de sessões), search (gerencia busca web e rerank) e provider (gerencia provedores).

jarvis login

Autentica no Jarvis Code CLI pelo fluxo de device code, sem entrar na TUI. O comando faz um pedido de autorização de dispositivo, imprime a URL de verificação e o código de usuário no stderr e então consulta periodicamente até a autorização ser concluída no navegador. O token gerado é escrito no mesmo local que o /login da TUI e é carregado automaticamente na próxima vez que o jarvis iniciar.

sh
jarvis login

Use --region <region> para escolher mainland-cn (kimi.com) ou global (kimi.ai). Pressione Ctrl-C a qualquer momento durante a consulta para cancelar; o código de saída é 1 em cancelamento ou falha, e 0 em sucesso.

jarvis acp

Coloca o Jarvis Code CLI em modo ACP (Agent Client Protocol), comunicando-se com uma IDE por JSON-RPC sobre stdin/stdout para o editor conduzir diretamente as sessões e as chamadas de ferramenta do CLI. Normalmente você não precisa executá-lo manualmente — a IDE o inicia como ponto de entrada de subprocesso. Para a configuração, veja Usando em IDEs; para os detalhes técnicos, veja a referência do jarvis acp.

sh
jarvis acp

O jarvis acp --login executa o fluxo de login por device code e sai. Com --login, --region <region> aceita mainland-cn (kimi.com) ou global (kimi.ai).

jarvis server

Executa o servidor de API local do Jarvis em primeiro plano no terminal atual. O processo expõe as APIs REST e WebSocket sem servir arquivos estáticos de navegador nem abrir um navegador. Ele fica preso ao terminal e encerra de forma limpa em SIGINT / SIGTERM (por exemplo, Ctrl-C).

Com o servidor rodando, GET /openapi.json devolve o documento OpenAPI da API REST e GET /asyncapi.json devolve o documento AsyncAPI do WebSocket local. Para um passo a passo completo de como conduzir sessões pela API, veja Servidor local e API; para os detalhes de protocolo, veja a referência de API do servidor.

sh
jarvis server
jarvis server --port 58628
jarvis server --host 127.0.0.1

Várias instâncias podem compartilhar um mesmo diretório home: cada uma se registra em ~/.jarvis-code/server/instances/, e uma porta ocupada é tentada de novo com porta + 1 (58628, 58629, …) por até 100 tentativas.

OpçãoDescrição
--port <port>Porta de escuta; o padrão é 58627; uma porta ocupada é tentada de novo com +1
--host [host]Host de escuta; omita para 127.0.0.1 (apenas esta máquina), passe --host sozinho para 0.0.0.0 (todas as interfaces)
--allowed-host <host...>Valores extras de cabeçalho Host aceitos na verificação de DNS rebinding; repetível ou separado por vírgulas
--log-level <level>Habilita os logs do servidor no nível escolhido; omitido por padrão
--debug-endpointsMonta as rotas /api/v1/debug/* (desligado por padrão)
--insecure-no-tlsPermite escuta não-loopback sem um proxy reverso terminando TLS; habilitado por padrão
--allow-remote-shutdownMantém o endpoint de desligamento habilitado em escuta não-loopback
--dangerous-bypass-authDesativa a autenticação por bearer token em todas as rotas REST e WebSocket; apenas para redes confiáveis ou atrás de um proxy autenticador

O jarvis server escuta apenas no loopback local por padrão e imprime o bearer token no banner de inicialização.

DANGER

O --dangerous-bypass-auth desativa a autenticação por completo. Qualquer um que alcance a porta ganha acesso total às suas sessões, ao seu sistema de arquivos e ao seu shell. Use apenas em uma rede confiável ou atrás do seu próprio proxy reverso autenticador, e pare o servidor com Ctrl+C ao terminar.

jarvis server rotate-token

Gera um novo bearer token persistente (escrito em ~/.jarvis-code/server.token); o token anterior para de funcionar imediatamente. O token é compartilhado por todo o diretório home, então toda instância em execução adota o novo na próxima verificação de autenticação — sem precisar reiniciar.

sh
jarvis server rotate-token

jarvis doctor

Valida o config.toml e o tui.toml sem iniciar a TUI nem modificar os arquivos. Por padrão, o comando verifica os arquivos em JARVIS_CODE_HOME (ou ~/.jarvis-code quando a variável não está definida). Arquivos padrão ausentes são reportados como ignorados, porque os padrões embutidos podem se aplicar.

sh
jarvis doctor
ComandoDescrição
jarvis doctorValida o config.toml e o tui.toml padrão
jarvis doctor config [path]Valida apenas o config.toml, usando path em vez do arquivo padrão quando informado
jarvis doctor tui [path]Valida apenas o tui.toml, usando path em vez do arquivo padrão quando informado

Quando um caminho explícito é passado, o arquivo precisa existir. O comando encerra com 0 quando todos os arquivos verificados estão válidos ou foram ignorados, e com 1 quando algum arquivo solicitado está ausente ou inválido.

sh
# Verifica os arquivos de configuração padrão
jarvis doctor

# Verifica apenas a configuração de execução padrão
jarvis doctor config

# Verifica um candidato a configuração de TUI antes de substituir a atual
jarvis doctor tui ./tui.toml

jarvis export

Empacota uma sessão em um arquivo ZIP para compartilhar, arquivar ou enviar relatórios de bug.

sh
jarvis export [sessionId] [options]
Parâmetro / OpçãoCurtaDescrição
sessionIdO ID da sessão a exportar. Quando omitido, a sessão mais recente do diretório de trabalho atual é selecionada automaticamente e pede confirmação
--output <path>-oCaminho do ZIP de saída. Quando omitido, escreve em um nome padrão no diretório atual
--yes-yPula o prompt de confirmação da sessão padrão e exporta direto
--no-include-global-logNão inclui o log de diagnóstico global. Incluído por padrão

A exportação contém todos os arquivos do diretório da sessão alvo. O log de diagnóstico global (~/.jarvis-code/logs/jarvis-code.log) é incluído por padrão porque pode conter eventos de outras sessões ou projetos; adicione --no-include-global-log se você não quiser compartilhá-lo.

sh
# Exporta a sessão mais recente do diretório atual, pulando a confirmação
jarvis export -y

# Exporta uma sessão específica para um caminho personalizado
jarvis export 01HZ...XYZ -o ./bug-report.zip

# Exclui o log de diagnóstico global
jarvis export 01HZ...XYZ -o ./bug-report.zip --no-include-global-log

jarvis upgrade

Verifica imediatamente se há uma versão mais recente e exibe um prompt de atualização; encerra depois da sua escolha. O jarvis update é um alias deste comando.

sh
jarvis upgrade

Em instalações globais por npm, pnpm, yarn e bun, o jarvis upgrade mostra as opções de atualização; escolher Install update now executa o comando de instalação correspondente em primeiro plano. Em instalações nativas (inclusive Windows), ele baixa e verifica o novo binário em primeiro plano e o troca na próxima inicialização. Quando o método de instalação atual não pode ser atualizado automaticamente, o comando manual de atualização é impresso.

jarvis vis

Abre o visualizador de sessões no seu navegador para inspecionar uma sessão enquanto ela acontece. O comando inicia um servidor em processo apontado para suas sessões locais, imprime a URL, abre o navegador e continua rodando até você pressionar Ctrl-C.

sh
jarvis vis [sessionId] [options]
Parâmetro / OpçãoDescrição
sessionIdAbre o visualizador diretamente nesta sessão. Quando omitido, abre a visão inicial listando suas sessões
--port <number>Porta de escuta. Por padrão, uma porta livre é escolhida automaticamente
--host <host>Host de escuta. Padrão: 127.0.0.1
--no-openNão abre o navegador automaticamente; apenas imprime a URL
sh
# Inicia o visualizador e abre o navegador na visão inicial
jarvis vis

# Abre diretamente em uma sessão específica
jarvis vis 01HZ...XYZ

# Escuta em porta e host fixos sem abrir navegador (por exemplo, em um host remoto)
jarvis vis --host 0.0.0.0 --port 8123 --no-open

Gerencia o backend de busca web e o rerank semântico sem abrir a TUI. Em Settings → Web Search, os provedores atuais aparecem no topo: Web search provider apenas configura ou edita Moonshot, LangSearch ou Brave (preservando a seleção atual), Active web search provider troca explicitamente qual backend configurado serve o WebSearch, e Rerank provider gerencia de forma independente o status do reranker e sua chave de API. Configurar o Moonshot pode reaproveitar o login OAuth atual do Jarvis Code ou aceitar uma chave de API para a região de API da China ou Global. Tanto o CLI quanto a TUI persistem as mudanças em [services] no config.toml; no CLI, jarvis search set brave|langsearch configura e seleciona o backend (escreve active_search_provider), enquanto jarvis search use apenas troca a seleção. O Brave Search exige seleção explícita e uma chave de API válida. A busca web da LangSearch funciona do mesmo jeito. No engine padrão agent-core-v2, o provedor selecionado é atômico: se suas credenciais estiverem ausentes ou inválidas, o WebSearch fica indisponível em vez de cair para outro backend.

ComandoDescrição
jarvis search statusMostra os backends de busca selecionado e ativo e o status do rerank
jarvis search set langsearch --api-key <key>Configura e seleciona a busca web da LangSearch
jarvis search set brave --api-key <key>Configura e seleciona o Brave Search
jarvis search set rerankConfigura o rerank semântico da LangSearch; por padrão reaproveita a chave de API de busca
jarvis search use <provider>Seleciona um backend já configurado: brave, langsearch ou moonshot
jarvis search clear langsearchRemove [services.langsearch]; limpa a seleção quando ele estava ativo
jarvis search clear braveRemove [services.brave]; limpa a seleção quando ele estava ativo
jarvis search clear rerankRemove [services.rerank]
jarvis search limitsMostra as cotas publicadas da LangSearch por camada

O jarvis search set langsearch aceita --tier <free|tier1|tier2|tier3> e --count <1-10>. O jarvis search set brave aceita um --base-url <url> opcional. O jarvis search set rerank aceita --provider langsearch, um --api-key <key> opcional e --enabled <true|false>.

sh
jarvis search set langsearch --api-key YOUR_API_KEY --tier free --count 10
jarvis search set brave --api-key YOUR_API_KEY
jarvis search use brave
jarvis search set rerank
jarvis search status
jarvis search clear rerank
jarvis search clear brave

Veja services para a referência completa de campos de configuração e a precedência entre backends.

jarvis provider

Gerencia provedores no shell — o equivalente não interativo do /provider da TUI. Adequado para implantações por script, inicialização em CI e configuração em uma linha em uma máquina nova.

sh
jarvis provider <action> [options]

Há cinco ações disponíveis:

jarvis provider add <url>

Importa em lote todos os provedores de um registro personalizado (api.json). O comando busca o registro, cria uma entrada [providers.<id>] e [models.<alias>] para cada item e escreve metadados de source para a TUI atualizar provedores e modelos da mesma URL de registro automaticamente na próxima inicialização.

Parâmetro / OpçãoDescrição
<url>URL do registro
--api-key <key>Token Bearer para acessar o registro. Recorre à variável de ambiente JARVIS_REGISTRY_API_KEY quando não informado; obrigatório
sh
jarvis provider add https://registry.example.com/v1/models/api.json --api-key YOUR_KEY

# Ou por variável de ambiente (adequado para CI / .envrc)
JARVIS_REGISTRY_API_KEY=YOUR_KEY jarvis provider add https://registry.example.com/v1/models/api.json

Se um ID de provedor já existe, ele é removido e recriado. O modelo padrão não é definido automaticamente; você pode escolher um depois com -m ou com /model na TUI.

jarvis provider remove <providerId>

Remove o provedor informado e todos os seus aliases de modelo. Se o provedor removido é o referenciado por default_model, o default_model também é limpo.

sh
jarvis provider remove kohub

jarvis provider list

Imprime cada provedor configurado em uma linha, incluindo tipo, contagem de modelos e origem. Adicione --json para produzir as tabelas providers e models cruas, para processamento programático.

sh
jarvis provider list
jarvis provider list --json | jq '.providers | keys'

jarvis provider catalog list [providerId]

Navega pelo catálogo público de modelos models.dev sem modificar configuração alguma. Sem argumento, lista todos os provedores com seu tipo de protocolo e a contagem de modelos; com um providerId, lista todos os modelos daquele provedor com sua janela de contexto e capacidades. Se a URL do catálogo estiver inacessível, um instantâneo embutido do catálogo é usado.

Parâmetro / OpçãoDescrição
[providerId]Opcional — o ID do provedor a inspecionar
--filter <substring>Filtro por substring no ID ou no nome, sem diferenciar maiúsculas
--url <url>Sobrescreve a URL do catálogo; o padrão é https://models.dev/api.json
--jsonProduz as entradas correspondentes em JSON
sh
jarvis provider catalog list
jarvis provider catalog list --filter anthropic
jarvis provider catalog list anthropic

jarvis provider catalog add <providerId>

Importa um provedor conhecido diretamente do catálogo pelo ID. O tipo de protocolo, a base URL e as informações de modelo vêm todas do catálogo — apenas uma chave de API é necessária. Fornecedores cujo protocolo o catálogo não declara (por exemplo xai, openrouter e outros SDKs específicos) são importados como compatíveis com OpenAI, e a saída registra que houve inferência; quando o catálogo não oferece um endpoint utilizável, --base-url é obrigatório. Protocolos proprietários (por exemplo Amazon Bedrock) não podem ser importados. Quando o catálogo público está inacessível, a importação usa o instantâneo embutido, então continua funcionando offline ou em redes bloqueadas.

Parâmetro / OpçãoDescrição
<providerId>ID do provedor no catálogo, por exemplo anthropic, openai
--api-key <key>Chave de API do provedor. Recorre a JARVIS_REGISTRY_API_KEY quando não informada; obrigatória
--default-model <modelId>Opcional — define default_model como <providerId>/<modelId> após a importação
--base-url <url>Sobrescreve o endpoint do catálogo; obrigatório quando o catálogo não declara nenhum (ou apenas um marcador de variável de ambiente)
--url <url>Sobrescreve a URL do catálogo; o padrão é https://models.dev/api.json
sh
jarvis provider catalog list anthropic          # Veja primeiro os modelos disponíveis
jarvis provider catalog add anthropic --api-key sk-ant-... --default-model claude-opus-4-7

Próximos passos

  • Comandos de barra — referência rápida dos comandos de controle da TUI interativa
  • Arquivos de configuração — configuração persistente de default_model, modo de permissão e outros parâmetros de inicialização
  • Agent Skills — formato dos arquivos de skill dos diretórios carregados por --skills-dir
  • Agentes e subagentes — subagentes embutidos, arquivos de agente personalizados e seleção do agente principal por --agent