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.
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ção | Curta | Descrição |
|---|---|---|
--version | -V | Imprime o número da versão e sai |
--help | -h | Mostra a ajuda e sai |
--session [id] | -S | Retoma uma sessão. Com um ID, abre aquela sessão diretamente; sem ID, entra em um seletor interativo |
--continue | -c | Continua a sessão mais recente do diretório de trabalho atual, sem informar um ID manualmente |
--model <model> | -m | Informa um alias de modelo para esta execução. Quando omitido, novas sessões usam o default_model do arquivo de configuração |
--prompt <prompt> | -p | Executa 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 | -y | Aprova automaticamente chamadas de ferramenta comuns, pulando os pedidos de aprovação |
--auto | Inicia 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 | |
--plan | Inicia 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:
--continuee--sessionsão mutuamente exclusivas — ambas significam "retomar uma sessão anterior"--yoloe--autosão mutuamente exclusivas — os dois modos de permissão não podem ser combinados--promptnão pode ser usada com--yolo,--autonem--plan— o modo não interativo usa permissãoautopor padrão--output-formatsó pode ser usada junto com--prompt--promptnão pode ser usada com--sessionquando nenhum id é informado--agente--agent-filesão mutuamente exclusivas; nenhuma delas pode ser usada com--sessionou--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:
jarvisContinuar de onde parou (encontra automaticamente a sessão mais recente do diretório atual):
jarvis --continueEscolher na lista de histórico de sessões, ou informar um ID conhecido diretamente:
jarvis --session
jarvis --session 01HZ...XYZPular os pedidos de aprovação — adequado para tarefas em lote sabidamente seguras:
jarvis --yoloDeixar o agente conduzir tudo de forma autônoma, sem fazer perguntas:
jarvis --autoLer o código e produzir um plano de implementação antes de qualquer alteração de arquivo:
jarvis --planDiretó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:shjarvis --skills-dir /caminho/para/team-skills --skills-dir ./local-skillsextra_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:
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:
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:
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:
jarvis -p "Liste os arquivos alterados" --output-format stream-jsonNo 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.
jarvis loginUse --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.
jarvis acpO 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.
jarvis server
jarvis server --port 58628
jarvis server --host 127.0.0.1Vá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ção | Descriçã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-endpoints | Monta as rotas /api/v1/debug/* (desligado por padrão) |
--insecure-no-tls | Permite escuta não-loopback sem um proxy reverso terminando TLS; habilitado por padrão |
--allow-remote-shutdown | Mantém o endpoint de desligamento habilitado em escuta não-loopback |
--dangerous-bypass-auth | Desativa 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.
jarvis server rotate-tokenjarvis 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.
jarvis doctor| Comando | Descrição |
|---|---|
jarvis doctor | Valida 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.
# 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.tomljarvis export
Empacota uma sessão em um arquivo ZIP para compartilhar, arquivar ou enviar relatórios de bug.
jarvis export [sessionId] [options]| Parâmetro / Opção | Curta | Descrição |
|---|---|---|
sessionId | O 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> | -o | Caminho do ZIP de saída. Quando omitido, escreve em um nome padrão no diretório atual |
--yes | -y | Pula o prompt de confirmação da sessão padrão e exporta direto |
--no-include-global-log | Nã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.
# 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-logjarvis 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.
jarvis upgradeEm 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.
jarvis vis [sessionId] [options]| Parâmetro / Opção | Descrição |
|---|---|
sessionId | Abre 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-open | Não abre o navegador automaticamente; apenas imprime a URL |
# 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-openjarvis search
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.
| Comando | Descrição |
|---|---|
jarvis search status | Mostra 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 rerank | Configura 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 langsearch | Remove [services.langsearch]; limpa a seleção quando ele estava ativo |
jarvis search clear brave | Remove [services.brave]; limpa a seleção quando ele estava ativo |
jarvis search clear rerank | Remove [services.rerank] |
jarvis search limits | Mostra 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>.
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 braveVeja 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.
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ção | Descriçã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 |
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.jsonSe 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.
jarvis provider remove kohubjarvis 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.
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ção | Descriçã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 |
--json | Produz as entradas correspondentes em JSON |
jarvis provider catalog list
jarvis provider catalog list --filter anthropic
jarvis provider catalog list anthropicjarvis 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ção | Descriçã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 |
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-7Pró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