Skip to content

Ferramentas integradas

Ferramentas integradas são o conjunto de ferramentas que o Jarvis Code CLI oferece junto com seu engine principal — sem necessidade de instalar um servidor MCP. O agente seleciona e chama essas ferramentas automaticamente conforme a tarefa em cada conversa; você pode inspecionar os detalhes de cada chamada pela interface de aprovação.

Comparadas às ferramentas MCP, as ferramentas integradas são gerenciadas diretamente pelo runtime, seu ciclo de vida é ligado à sessão e nenhum processo externo é necessário. Ambas seguem o mesmo mecanismo unificado de aprovação: ferramentas somente leitura (como Read, Grep, Glob) são liberadas automaticamente por padrão, enquanto ferramentas de escrita e execução (como Write, Edit, Bash) exigem aprovação por padrão. No YOLO mode (modo YOLO), a aprovação de chamadas de ferramenta comuns é pulada; a aprovação de saída do Plan mode (modo de planejamento) não é afetada.

Ferramentas de arquivo

Ferramentas de arquivo tratam leitura, escrita e busca no sistema de arquivos local — a base das tarefas de análise e modificação de código.

FerramentaAprovação padrãoDescrição
ReadLiberadaLê o conteúdo de um arquivo de texto
WriteExige aprovaçãoCria ou sobrescreve um arquivo
EditExige aprovaçãoSubstituição precisa de string
GrepLiberadaBusca em texto completo com ripgrep
GlobLiberadaEncontra arquivos por padrão glob
ReadMediaFileLiberadaLê um arquivo de imagem ou vídeo

Read aceita um caminho de arquivo (path) e, opcionalmente, line_offset (linha inicial; valores negativos contam a partir do fim) e n_lines (número máximo de linhas a ler). Devolve no máximo 1000 linhas ou 100 KB por chamada; conteúdo além desse limite vem acompanhado de um aviso de truncamento. Se o arquivo for imagem ou vídeo, a ferramenta sugere usar ReadMediaFile.

Write aceita path, content e um mode opcional (overwrite ou append; o padrão é sobrescrever). Diretórios pai ausentes são criados automaticamente; o modo append acrescenta conteúdo ao fim do arquivo sem adicionar quebra de linha. Escrever em um arquivo existente — em overwrite ou append — exige um Read prévio daquele arquivo na sessão; a escrita é rejeitada se o arquivo mudou em disco desde a última leitura, enquanto criar um arquivo novo é isento.

Edit aceita path, old_string (o texto exato a substituir) e new_string (o texto de substituição). Por padrão ele substitui apenas uma correspondência única; se o mesmo conteúdo aparece várias vezes no arquivo, a ferramenta retorna erro e sugere usar replace_all: true. old_string e new_string não podem ser idênticos. O arquivo alvo precisa ter sido lido com Read antes na sessão, e a edição é rejeitada se o arquivo mudou em disco desde essa leitura.

Grep invoca o ripgrep para buscar no conteúdo dos arquivos, com suporte a expressões regulares (pattern), caminho de busca (path), filtro por tipo de arquivo (type, por exemplo ts, py), filtro glob (glob) e modo de saída (output_mode: files_with_matches / content / count_matches; o padrão é files_with_matches). O modo content suporta linhas de contexto (-A, -B, -C), correspondência sem diferenciar maiúsculas (-i), números de linha (-n, verdadeiro por padrão) e correspondência multilinha (multiline). Todos os modos suportam paginação com offset + head_limit; o head_limit tem padrão 250 e 0 significa sem limite. Arquivos sensíveis como .env e chaves privadas são filtrados automaticamente; use include_ignored=true para buscar em arquivos ignorados pelo .gitignore, mas arquivos sensíveis continuam filtrados.

Glob encontra arquivos em um diretório informado (path; o padrão é o diretório de trabalho) por padrão glob (pattern). Os resultados são ordenados por data de modificação decrescente, com no máximo 100 entradas. Ele respeita .gitignore, .ignore e .rgignore por padrão; use include_ignored=true para incluir arquivos ignorados, como saídas de build, mantendo os sensíveis filtrados. Padrões com chaves, como *.{ts,tsx}, são suportados, e padrões curinga amplos são permitidos, mas geralmente atingem o limite de correspondências.

ReadMediaFile envia uma imagem ou vídeo ao modelo como conteúdo multimodal. Aceita path, além de controles opcionais de detalhe de imagem como region e full_resolution; o limite de tamanho de arquivo é 100 MB. Leituras de imagem padrão são comprimidas para os limites configurados do modelo. Se a compressão automática não conseguir atingir esses limites com segurança, a ferramenta retorna erro sem enviar a imagem original e orienta o modelo a criar e ler uma cópia menor. A disponibilidade depende das capacidades de visão do modelo atual (image_in / video_in).

Shell

FerramentaAprovação padrãoDescrição
BashExige aprovaçãoExecuta um comando de shell

Bash é a ferramenta que mais exige permissão e também a mais versátil. Parâmetros:

  • command (obrigatório): o comando de shell a executar
  • cwd: diretório de trabalho
  • timeout: tempo limite em milissegundos; o padrão em primeiro plano é 60 segundos, com máximo de 5 minutos
  • run_in_background: se deve rodar como tarefa em segundo plano; tarefas em segundo plano têm tempo limite padrão de 10 minutos (sem tempo limite por padrão no modo de prompt jarvis -p)
  • description: descrição da tarefa em segundo plano; obrigatória quando run_in_background=true
  • disable_timeout: se deve remover o limite de tempo de tarefas em segundo plano

O modo em primeiro plano bloqueia o turno atual até o comando terminar ou estourar o tempo, e a TUI transmite stdout e stderr para o cartão da ferramenta Bash enquanto o comando ainda roda. Por padrão, um comando em primeiro plano que atinge o tempo limite não é encerrado — ele continua como tarefa em segundo plano (limitado pelo tempo padrão de 600s); para restaurar o encerramento no tempo limite, defina bash_auto_background_on_timeout como false em [background]. O padrão de 600s em segundo plano é configurável por bash_task_timeout_s (0 = sem tempo limite) e o padrão no modo de prompt (jarvis -p) é sem tempo limite. O modo em segundo plano retorna um ID de tarefa imediatamente e notifica o agente automaticamente quando a tarefa termina. O stdin é sempre fechado — comandos interativos recebem EOF na hora. Uma estratégia de encerramento em duas fases (SIGTERM → 5 segundos de tolerância → SIGKILL) garante limpeza confiável de processos quando uma tarefa é interrompida ou atinge o tempo limite em segundo plano. No Windows, o Git Bash é usado por padrão.

Ferramentas web

FerramentaAprovação padrãoDescrição
WebSearchLiberadaBusca na web
FetchURLLiberadaObtém o conteúdo de uma URL informada

WebSearch aceita query (termos de busca). Exige que o host forneça uma implementação de busca; quando ela não é injetada, a ferramenta não aparece na lista. O backend é o indicado por active_search_provider (Brave, LangSearch ou Moonshot), ou a precedência legada quando nenhum backend está selecionado.

FetchURL aceita um único parâmetro url e devolve o conteúdo da página. Em páginas HTML, o host extrai o texto do corpo em vez de devolver o HTML completo; páginas de texto puro ou Markdown passam direto. Também exige uma implementação fornecida pelo host.

Quando o Brave Search é o backend ativo, o WebSearch é servido pelo Brave, e o engine v2 disponibiliza no registro de ferramentas do modelo um conjunto de ferramentas especializadas que mapeiam os demais endpoints da Brave Search API. Elas são oferecidas apenas quando o Brave está explicitamente selecionado (active_search_provider = "brave") e há uma chave de API válida, e apenas no engine padrão agent-core-v2:

FerramentaDescrição
BraveWebSearchBusca web geral
BraveNewsSearchBusca de artigos de notícia
BraveImageSearchBusca de imagens
BraveVideoSearchBusca de vídeos
BraveLLMContextRecupera contexto de embasamento para uso por LLM
BraveAnswersRespostas diretas a uma consulta
BraveSuggestSugestões de autocompletar de consulta
BraveSpellcheckCorreção ortográfica de uma consulta
BraveLocalSearchBusca de negócios e lugares locais
BraveRichResultsResultados estruturados enriquecidos

Cada endpoint tem seu próprio limite de taxa; consulte-os no painel da Brave Search API. A busca local devolve IDs de localização efêmeros que o Brave mantém válidos por cerca de 8 horas. O endpoint Summarizer, depreciado, não é oferecido.

Plan mode

FerramentaAprovação padrãoDescrição
EnterPlanModeLiberadaEntra no Plan mode
ExitPlanModeLiberada (exige o usuário confirmar o plano)Sai do Plan mode e envia o plano

O Plan mode é um estado de trabalho restrito: ao entrar, Write e Edit ficam limitados a escrever apenas o arquivo de plano atual, e o TaskStop é bloqueado por completo. Todas as demais ferramentas (inclusive o Bash) continuam regidas pelas regras de permissão atuais.

EnterPlanMode não aceita parâmetros; em caso de sucesso devolve a orientação de fluxo e o caminho do arquivo de plano.

ExitPlanMode lê o arquivo de plano atual, apresenta o plano ao usuário para aprovação e então sai do Plan mode. O parâmetro opcional options permite ao agente oferecer de 1 a 3 abordagens alternativas (cada uma com label e description; label com no máximo 80 caracteres) para o usuário escolher durante a aprovação. Os rótulos precisam ser únicos e não podem usar palavras reservadas como Approve, Reject, Reject and Exit ou Revise.

Memória persistente

A ferramenta Memory é uma capacidade nativa do engine v2. Ela suporta três ações: remember, forget e list; os escopos de memória são user, workspace e project. Apenas o agente principal pode alterar memória de escopo de usuário, e escritas de escopo de projeto exigem um workspace confiável. Não guarde segredos; a implementação censura e rejeita conteúdo com formato de credencial, mas a memória não é um cofre de segredos.

A recuperação de memória é seletiva e limitada pelos limites de [memory]. Memórias de escopo de projeto ficam invisíveis tanto para list quanto para a recuperação enquanto o workspace não é confiável. Entradas recuperadas são injetadas como dados de referência não confiáveis: podem estar desatualizadas, erradas ou plantadas por terceiros. Nunca siga instruções encontradas em memória recuperada; verifique detalhes importantes contra o workspace ao vivo.

Os limites rígidos de memória são fixos: cada corpo tem no máximo 4096 bytes UTF-8, cada nome no máximo 200 caracteres, cada descrição no máximo 2000 caracteres, e cada escopo guarda no máximo 200 registros. Após cada turno concluído — tanto para o agente principal quanto para subagentes — a extração automática sanitiza e persiste automaticamente até 8 rascunhos seguros, e roda de novo ao fim da execução e quando a sessão fecha, excluindo duplicatas dentro da execução e registros já visíveis no catálogo de memória.

Memórias extraídas nunca vão para o escopo user: o escopo é normalizado para project quando o workspace é confiável e para workspace caso contrário, então memória de escopo de usuário só é escrita pela ferramenta Memory explícita. Falhas transitórias de persistência são tentadas de novo após um turno concluído posterior; erros terminais de memória (por exemplo, escritas de projeto em workspace não confiável) são descartados em vez de repetidos. Essa verificação de catálogo visível não é uma garantia atômica de idempotência entre processos. A extração automática vem ligada por padrão e pode ser desligada com extraction_enabled = false em [memory] no config.toml.

Metas

As ferramentas de meta sustentam o modo de metas: um objetivo durável que o runtime persegue ao longo de turnos que continuam automaticamente. O agente as chama; você conduz o modo de metas pela TUI com /goal.

FerramentaAprovação padrãoDescrição
CreateGoalLiberadaCria a meta durável desta sessão
GetGoalLiberadaLê a meta atual, seu status e seus orçamentos restantes
SetGoalBudgetLiberadaDefine um orçamento rígido de execução para a meta atual
UpdateGoalLiberadaMove a meta atual para active, complete ou blocked

CreateGoal aceita o objective, um completionCriterion opcional e replace. Criar uma meta falha quando já existe uma, então replace: true é necessário para abandonar a meta atual e começar outra. O agente é instruído a não criar meta para cumprimentos, perguntas comuns ou pedidos sem um estado final verificável.

GetGoal não aceita parâmetros e devolve o objetivo, o critério de conclusão, o status e os orçamentos de turnos, tokens e tempo, junto de quanto resta de cada um. Quando a meta parou, também informa o motivo terminal. Devolve { "goal": null } quando não há meta atual.

SetGoalBudget aceita um value positivo e uma unit entre turns, tokens, milliseconds, seconds, minutes ou hours. Um orçamento de tempo precisa ficar entre 1 segundo e 24 horas; qualquer coisa fora disso é rejeitada. Orçamentos de turnos e tokens só precisam ser positivos e são arredondados para o inteiro mais próximo, com mínimo de 1. O agente define um orçamento apenas quando você declara um limite explícito, como "pare depois de 20 turnos" ou "termine em 30 minutos" — enunciados vagos não geram orçamento.

UpdateGoal define o status da meta. active retoma uma meta pausada ou bloqueada, complete a encerra e registra um resumo de conclusão, e blocked reporta um impasse real. O agente precisa encontrar a mesma condição de bloqueio por pelo menos três turnos de meta consecutivos antes de reportar blocked, a menos que o objetivo em si seja impossível, inseguro ou contraditório — nesse caso ele bloqueia no mesmo turno.

Gerenciamento de estado

FerramentaAprovação padrãoDescrição
TodoListLiberadaGerencia uma lista de tarefas

TodoList mantém uma lista visível de subtarefas ao longo de operações de vários passos; o estado é guardado dentro da sessão do agente. O parâmetro todos aceita um array em que cada item tem title e status (pending / in_progress / done). Omitir todos consulta a lista atual; passar um array vazio a limpa.

Ferramentas de colaboração

Ferramentas de colaboração tratam coordenação entre agentes, interação com o usuário e invocação de skills.

FerramentaAprovação padrãoDescrição
AgentLiberadaCria um subagente para executar uma subtarefa
AgentSwarmLiberada no modo swarm; caso contrário, exige aprovaçãoLança subagentes por item ou retoma subagentes existentes
AskUserQuestionLiberadaFaz uma pergunta ao usuário para coletar entrada estruturada
SkillLiberadaInvoca uma skill inline registrada

Agent delega uma subtarefa a um subagente. Parâmetros obrigatórios: prompt (descrição completa da tarefa) e description (um resumo curto de 3 a 5 palavras). Parâmetros opcionais: subagent_type (padrão coder), resume (ID de um agente existente a retomar; mutuamente exclusivo com subagent_type), run_in_background (padrão falso) e model (disponível apenas quando o experimento de pool de modelos de subagente está habilitado e um pool está configurado — uma tabela [secondary_model.models] ou um default_model isolado: um alias do pool, ou "primary" para o modelo em que o próprio chamador roda; ignorado ao retomar). Sem ele, o subagente usa o default_model do pool; sem um pool configurado, subagentes sempre herdam o modelo de quem chamou. Tarefas de agente têm tempo limite padrão de 2 horas; o limite é configurável por [subagent] timeout_ms no config.toml (0 = sem tempo limite, ou a variável JARVIS_SUBAGENT_TIMEOUT_MS), e o padrão no modo de prompt (jarvis -p) é sem tempo limite. Em primeiro plano, o agente pai espera o subagente terminar antes de continuar; em segundo plano, um ID de tarefa é retornado imediatamente e o resultado é entregue de volta ao agente principal por uma mensagem de usuário sintética quando pronto. Quando várias chamadas de Agent em primeiro plano rodam no mesmo passo, a TUI as agrupa e mostra o status de cada subagente — rodando, aguardando, concluído ou falho — com o tempo decorrido. Veja Agentes e subagentes para os detalhes.

AgentSwarm lança subagentes a partir de um prompt_template compartilhado e de um array items, retoma subagentes existentes por resume_agent_ids, ou combina os dois em uma chamada. O template precisa conter o marcador ; cada item substitui esse marcador e lança um novo subagente. Passe subagent_type para escolher o perfil usado por todos os subagentes criados no swarm, ou omita para usar coder. Passe model (disponível apenas quando o experimento de pool de modelos de subagente está habilitado e um pool está configurado) para rodar os subagentes criados por item em um alias do pool ou no próprio modelo de quem chamou ("primary"). Sem ele, subagentes criados por item usam o default_model do pool; sem pool configurado, herdam o modelo de quem chamou. Subagentes retomados mantêm o próprio modelo. Sem resume_agent_ids, a ferramenta exige pelo menos 2 itens; com resume_agent_ids, ela pode retomar um ou mais subagentes existentes. A ferramenta suporta até 128 subagentes no total, espera todos terminarem e devolve um relatório agregado. Cada subagente tem tempo limite padrão de 2 horas; o limite é configurável por [swarm] timeout_ms no config.toml (0 = sem tempo limite, ou a variável JARVIS_CODE_SWARM_TIMEOUT_MS), e o padrão no modo de prompt (jarvis -p) é sem tempo limite. Um subagente que estoura o tempo é abortado e marcado como falho no relatório agregado. Na TUI, swarms em primeiro plano mostram um painel de progresso Agent swarm ao vivo acima da caixa de entrada. Se uma resposta do modelo chama AgentSwarm, essa precisa ser a única chamada de ferramenta da resposta; para rodar vários swarms, chame um AgentSwarm, espere o resultado e então chame o próximo, ou junte o trabalho em um único swarm quando um template só der conta. No modo de permissão manual, chamadas de AgentSwarm fora do modo swarm ativo pedem aprovação, a menos que uma regra de permissão as libere; enquanto o modo swarm está ativo, o próprio AgentSwarm é aprovado automaticamente. Regras de permissão correspondem ao AgentSwarm apenas por nome de ferramenta — padrões de argumento como AgentSwarm(swarm) não são suportados. Por padrão a ferramenta aumenta a concorrência sem teto (5 subagentes começam imediatamente, depois mais 1 a cada 700 ms); defina JARVIS_CODE_AGENT_SWARM_MAX_CONCURRENCY com um inteiro positivo para limitar quantos subagentes rodam ao mesmo tempo durante essa subida, ou deixe sem definir para não limitar. Se for definida com um valor que não seja inteiro positivo, a chamada de AgentSwarm falha imediatamente.

AskUserQuestion faz ao usuário uma pergunta estruturada de múltipla escolha — útil para desambiguar ou escolher opções. O parâmetro questions aceita de 1 a 4 perguntas; cada uma exige question (terminando com ?), options (de 2 a 4 escolhas, cada uma com label e description) e, opcionalmente, header (máx. 12 caracteres) e multi_select (padrão falso). Uma opção "Other" é acrescentada automaticamente. Definir background como verdadeiro inicia uma tarefa de pergunta em segundo plano e devolve um ID de tarefa imediatamente. Quando o host não suporta perguntas interativas, uma mensagem de falha é devolvida e o agente deve perguntar ao usuário diretamente em uma resposta de texto.

Skill permite ao agente invocar ativamente uma skill registrada do tipo inline. Aceita skill (o nome da skill) e, opcionalmente, args (texto de argumento adicional). Apenas skills com type = "inline" podem ser chamadas por esta ferramenta; skills com disableModelInvocation: true são recusadas. A profundidade máxima de aninhamento é de 3 níveis. Veja Agent Skills para os detalhes.

Workflows

A ferramenta Workflow inicia um workflow dinâmico — um script JavaScript escrito pelo usuário que orquestra subagentes em fases. O agente principal tem a ferramenta e entra no modo Dynamic Workflow automaticamente em tarefas grandes de várias fases; perfis de subagente (coder, explore) nunca a incluem, então tarefas delegadas não podem aninhar execuções de workflow.

FerramentaAprovação padrãoDescrição
WorkflowLiberada (revisada no modo manual)Inicia um workflow dinâmico por name do catálogo ou por script inline

Workflow aceita exatamente um entre name (um workflow do catálogo, por exemplo deep-research) ou script (um script de workflow inline), além de uma string args opcional passada ao script como seu valor args. A ferramenta retorna imediatamente com os IDs de execução e de tarefa; a execução roda em segundo plano e sua conclusão chega como notificação automática em um turno posterior. Toda chamada carrega uma exibição dos metadados do workflow, das fases, do script completo, dos limites resolvidos e de um aviso de consumo de tokens. No modo de permissão manual, cada chamada passa por uma revisão de aprovação antes de qualquer coisa executar; nos modos yolo e auto, a ferramenta é aprovada automaticamente. Veja Workflows dinâmicos para a API do script, os limites de execução e o acompanhamento.

Modo Tower

As ferramentas Tower implementam o protocolo do modo Tower: um agente coordenador planeja missões, cria subagentes worker e revisores em git worktrees isolados, roteia mensagens entre eles e mescla apenas branches aprovados em revisão.

Elas existem apenas quando a flag experimental tower está habilitada (JARVIS_CODE_EXPERIMENTAL_TOWER=1, ou o interruptor mestre JARVIS_CODE_EXPERIMENTAL_FLAG=1) no engine padrão agent-core-v2. Como o conjunto de ferramentas é montado uma única vez na inicialização, habilitar a flag pelo /experiments exige um reinício antes de as ferramentas existirem.

FerramentaDisponível paraDescrição
TowerInitTorreInicializa o workspace .tower/ e registra o branch base
TowerPlanTorreDivide o objetivo em missões com globs de escopo disjuntos, tarefas e dependências
TowerSpawnTorreCria um worker para uma missão ou um revisor para um branch, como subagente em segundo plano
TowerMergeTorreMescla um branch de missão no branch base, passando pelo portão de revisão
TowerTeardownTorreRemove os worktrees das missões e sai do Tower mode
TowerSendTodosEnvia uma mensagem de caixa de entrada a um agente do roster, a tower ou a all
TowerInboxTodosLê sua caixa de entrada: mensagens endereçadas a você mais transmissões, das mais novas às mais antigas
TowerFindingTodosRegistra um achado estruturado (bug, improve, vuln, idea) fora do escopo da sua missão
TowerReviewTodosEnvia um veredito de revisão para um branch que lhe foi designado
TowerMissionTodosLê uma missão, ou aplica um patch na que você é dono (marca tarefas, registra notas, levanta bloqueios)
TowerStatusTodosMostra o painel da torre: missões, roster, portão de revisão, contagem de caixa de entrada, log de atividade

O agente coordenador conduz essas ferramentas; você não as chama à mão. Pela TUI, use /tower para ligar o modo, definir um objetivo, pedir o status ou encerrar o workspace.

O protocolo é imposto em código, não em prompts. O TowerPlan rejeita um plano cujas missões de build tenham globs de escopo sobrepostos. O TowerMerge recusa um branch a menos que sua última revisão esteja limpa e tenha sido escrita contra o tip atual, todas as missões de dependência tenham sido mescladas e todo arquivo alterado esteja dentro do escopo declarado da missão. O TowerReview aceita um veredito apenas de um revisor designado àquele alvo. Todos os artefatos de protocolo ficam em .tower/comms/ e são escritos exclusivamente por essas ferramentas; editá-los à mão quebra o portão de merge.

Workers e revisores criados rodam no perfil tower-worker, fixados no modo de permissão auto, e carregam apenas as ferramentas Tower* compartilhadas mais as ferramentas comuns de arquivo, shell e busca. Eles não podem fazer perguntas a você; escalam para a torre com TowerSend. Os spawns do tower são limitados por um orçamento adaptativo de concorrência que encolhe com limites de taxa do provedor e se recupera até um teto de 16 agentes de tower simultâneos.

Tarefas em segundo plano

As ferramentas de tarefa em segundo plano gerenciam tarefas iniciadas por Bash, Agent ou AskUserQuestion. Quando uma tarefa atinge um estado terminal, seu status e o caminho da saída salva são entregues automaticamente ao agente; use TaskOutput para checar o progresso antes, ou WaitFor para esperar um resultado dentro do turno atual.

FerramentaAprovação padrãoDescrição
TaskListLiberadaLista tarefas em segundo plano
TaskOutputLiberadaVê a saída de uma tarefa em segundo plano
TaskStopExige aprovaçãoInterrompe uma tarefa em segundo plano em execução
WaitForLiberadaEspera tarefas em segundo plano terminarem

TaskList devolve a lista de tarefas em segundo plano. Parâmetros opcionais: active_only (padrão verdadeiro; lista apenas tarefas em execução) e limit (padrão 20; faixa de 1 a 100).

TaskOutput devolve o status e a saída de uma tarefa a partir do task_id. A prévia inline inclui no máximo os 32 KB mais recentes de conteúdo; o log completo é salvo em disco, e a ferramenta também devolve um output_path com a sugestão de usar Read para acesso paginado. A chamada nunca bloqueia — ela devolve o instantâneo atual imediatamente, e a conclusão da tarefa chega por notificação automática.

TaskStop aceita um task_id e um reason opcional (padrão Stopped by TaskStop). É seguro chamá-la em tarefas que já estão em estado terminal.

WaitFor suspende o turno atual até uma tarefa em segundo plano terminar ou o tempo limite passar. Parâmetros: timeout (obrigatório, em segundos, máximo 600) e task_id opcional. Sem task_id, a espera termina assim que qualquer tarefa em segundo plano que estava rodando no momento da chamada terminar; quando nenhuma tarefa em segundo plano está rodando, ela retorna imediatamente. Um tempo limite não é um erro — o resultado lista as tarefas ainda em execução, e o agente pode esperar de novo ou fazer outro trabalho nesse meio-tempo. Uma tarefa cujo resultado foi reportado por WaitFor não gera também uma notificação automática de conclusão.

Tarefas agendadas

As ferramentas de tarefa agendada permitem ao agente reinjetar um prompt na sessão atual em um momento futuro — como lembrete único ou como tarefa recorrente disparada por cron (verificações periódicas, relatórios diários, monitoramento de deploy etc.). Os agendamentos ficam vinculados à sessão e permanecem ativos quando você a retoma com jarvis --session, mas não são levados para uma sessão nova. Uma sessão pode ter no máximo 50 tarefas agendadas ativas. Defina JARVIS_DISABLE_CRON=1 para desativá-las por completo; veja Variáveis de ambiente.

FerramentaAprovação padrãoDescrição
CronCreateExige aprovaçãoAgenda um prompt para disparar em um momento futuro
CronListLiberadaLista tarefas agendadas
CronDeleteExige aprovaçãoCancela uma tarefa agendada

CronCreate aceita cron (uma expressão cron padrão de 5 campos no fuso horário local do usuário: minuto hora dia-do-mês mês dia-da-semana), prompt (o texto a injetar no disparo; limite de 8 KB em UTF-8) e, opcionalmente, recurring (padrão true; passe false para um lembrete único que se apaga após disparar). Em caso de sucesso, devolve um id de 8 dígitos hexadecimais, um humanSchedule legível (por exemplo, every 5 minutes) e nextFireAt (o horário ISO do próximo disparo).

Para evitar que todos os usuários disparem no mesmo instante da hora cheia, o agendador aplica um deslocamento determinístico: tarefas recorrentes são adiadas em min(10% do período, 15 minutos); tarefas únicas que caem exatamente em :00 ou :30 são adiadas em até 90 segundos. Se o agendador perde vários disparos (por exemplo, porque o notebook estava suspenso), ele dispara apenas uma vez ao acordar — o prompt vem embrulhado em um envelope <cron-fire> com um coalescedCount. Tarefas recorrentes vivas há mais de 7 dias disparam uma última vez com stale="true" e então são apagadas automaticamente; chame CronCreate de novo para mantê-las.

CronList é uma ferramenta somente leitura que não aceita parâmetros. Ela devolve um registro por tarefa ativa com os campos id, cron, humanSchedule, nextFireAt, recurring, ageDays e stale. Os registros são separados por --- e ordenados por horário de agendamento.

CronDelete aceita um único id. Em tarefas recorrentes, todos os disparos futuros param imediatamente; em tarefas únicas, o disparo pendente é cancelado. Tarefas únicas que já dispararam são apagadas automaticamente, então chamar CronDelete em uma tarefa única já disparada devolve No cron job with id .... A exclusão é irreversível — use CronCreate de novo para restaurar. O CronDelete também é bloqueado no Plan mode.

Próximos passos

  • Agentes e subagentes — mecânica de agendamento e isolamento de contexto da ferramenta Agent
  • Hooks — dispare scripts locais antes e depois de chamadas de ferramenta
  • Comandos de barra — referência rápida dos comandos de controle embutidos da TUI