Verboo Code: como ver a duração e o custo da sessão com /cost
Voltar para o Blog
Artigoverboo codetutorialdev toolsprodutividade

Verboo Code: como ver a duração e o custo da sessão com /cost

Mafra5 de novembro de 20266 min de leitura

Você terminou uma tarefa longa e não sabe dizer se ela custou caro, se demorou por causa do modelo ou porque você ficou 40 minutos lendo a saída antes de responder. O comando /cost responde as duas perguntas com um bloco de texto só, sem dashboard e sem integração.

Ele existe desde as primeiras versões herdadas, mas quase ninguém abre: a maioria acha que o número em dólar é a fatura do plano e fecha o comando. Não é. Entender de onde o valor sai é o que torna a leitura útil.

O que o comando /cost mostra?

Ele imprime cinco blocos: custo total, duração de API, duração de parede, linhas de código alteradas e uso separado por modelo. É um resumo da sessão atual, não do mês.

Linha na saídaO que mede
Total costCusto estimado em dólar, calculado localmente a partir dos tokens.
Total duration (API)Tempo somado das chamadas ao modelo, incluindo as que deram certo e as que foram repetidas.
Total duration (wall)Tempo de relógio desde o início do processo, ou desde a troca de sessão. Inclui o tempo em que você estava lendo.
Total code changesLinhas adicionadas e removidas pelos edits do agente na sessão.
Usage by modelTokens de entrada, saída, cache de leitura e cache de escrita, por modelo, com o custo de cada um.

Quando a sessão não teve nenhuma chamada ainda, a última linha aparece como Usage: 0 input, 0 output. É o único caso em que o bloco vem vazio.

Como rodar o /cost?

Dentro da sessão interativa, digite o comando sozinho e aperte Enter:

/cost

Ele também funciona em modo headless, porque o comando declara suporte a execução não interativa. Útil para medir um script que você roda no CI:

verboo -p "/cost"
Fluxo de leitura do /cost na Verboo Code: medir a sessão, separar duração de API de duração de parede, ver o peso por modelo e usar /usage quando a pergunta for a cota do plano
Três leituras saem do mesmo comando. A quarta pergunta, sobre cota do plano, é de outro comando.

De onde vem o valor de Total cost?

O número é calculado no seu computador, multiplicando os tokens da sessão por uma tabela de preço embutida no binário. Nenhuma chamada de cobrança acontece para montar essa linha.

A conta, em dólar por milhão de tokens, é esta:

custo = entrada / 1M * preco_entrada
      + saida / 1M * preco_saida
      + cache_read / 1M * preco_cache_read
      + cache_write / 1M * preco_cache_write
      + buscas_web * 0.01

Os preços por faixa de modelo na tabela do binário, na versão 0.15.41:

Faixa na tabelaEntradaSaídaCache leituraCache escrita
Haiku 3.50,8040,081
Haiku 4.5150,101,25
Sonnet 4.x3150,303,75
Opus 4.5 a 4.75250,506,25
Opus 4 e 4.115751,5018,75
Opus 4.6 em fast mode30150337,50

Valores em dólar por milhão de tokens, como estão em src/utils/modelCost.ts. Se o seu provedor cobra diferente, a linha Total cost continua sendo a conta do binário, não a do provedor.

Duas consequências práticas:

  • Cache muda a ordem de grandeza. No Sonnet, cache de leitura custa 0,30 contra 3,00 de entrada limpa, dez vezes menos. Sessão que reaproveita contexto pesa muito menos do que o volume de tokens sugere.
  • Modelo fora da tabela distorce a leitura. Quando o modelo não tem preço cadastrado, o binário usa o preço do modelo padrão e acrescenta o aviso (costs may be inaccurate due to usage of unknown models). Se esse aviso aparecer, trate o número como ordem de grandeza.

O valor é exibido com duas casas decimais quando passa de meio dólar e com quatro casas abaixo disso. Ver $0.0312 não significa cobrança fracionada: significa sessão curta.

Por que a duração de API é menor que a duração de parede?

Porque a duração de parede conta o relógio inteiro, inclusive o tempo em que o agente estava parado esperando você. A duração de API conta só o tempo dentro das chamadas ao modelo.

Essa diferença é o diagnóstico mais barato que o comando oferece. Parede de 2h com API de 9min quer dizer que o gargalo foi a sua leitura, não a inferência. Parede de 40min com API de 35min quer dizer o contrário: o agente trabalhou quase o tempo todo, e o próximo passo é olhar modelo e tamanho de contexto.

Como usar a linha Usage by model?

Ela separa o consumo por modelo, o que responde qual parte da sessão pesou. Cache de leitura, cache de escrita e busca web só aparecem quando são maiores que zero, então linha curta é sinal de sessão sem reaproveitamento.

Leitura típica: se 80% do custo está no modelo mais caro e a tarefa era renomear arquivo, o ajuste não é escrever prompt melhor. É trocar de modelo com /model para o trecho mecânico e voltar ao modelo forte só na parte difícil. A tabela por modelo mostra o tamanho do desvio, não só a impressão.

/cost ou /usage: qual é a diferença?

/cost mede o que a sessão consumiu. /usage mostra a cota do plano e quando ela reseta. São perguntas diferentes e os dois números não se substituem.

PerguntaComandoO que responde
Quanto esta sessão consumiu?/costCusto, duração, linhas e tokens por modelo.
Quanto ainda tenho no plano?/usageLimite da cota e janela de reset.
Onde o contexto está pesando?/contextDistribuição do contexto por categoria.

Se a dúvida é por que o limite acabou rápido, o comando é /usage para ver o consumo e /context para achar o que está ocupando janela. O /cost entra depois, para comparar sessões entre si.

Como ver o custo de cada requisição, não só o total?

O resumo agrega a sessão. Para ver requisição por requisição, existe uma variável de ambiente que o binário lê e que não aparece na interface: ela escreve uma linha JSON por chamada no stderr.

VERBOO_LOG_TOKEN_USAGE=verbose verboo -p "seu prompt" 2> usage.jsonl

Cada linha traz modelo, tokens de entrada e saída, cache, taxa de acerto de cache e cost_usd daquela chamada. Com esse arquivo, dá para somar por modelo em uma linha de jq:

jq -s 'group_by(.model) | map({model: .[0].model, usd: (map(.cost_usd) | add)})' usage.jsonl

É um recurso de depuração, não uma interface estável: se um dia a variável mudar de nome, o grep que encontra é VERBOO_LOG_TOKEN_USAGE em src/cost-tracker.ts.

Checklist para ler a sessão em 30 segundos

  1. Rode /cost.
  2. Compare duração de API com duração de parede. Diferença grande aponta para espera humana.
  3. Olhe Usage by model e ache o modelo que concentra o custo.
  4. Se o aviso de modelo desconhecido aparecer, trate o valor como estimativa.
  5. Se a pergunta for cota, troque para /usage.

Medir a sessão serve para escolher onde gastar a próxima tentativa. Quando o plano não cobra por token, o número do /cost deixa de ser fatura e vira sinal de esforço e de escolha de modelo.

Quer rodar a mesma medição num modelo mais forte sem contar token? O /cost continua disponível na Verboo Code, e a comparação entre sessões passa a ser sobre tempo e qualidade.

Gostou deste artigo?
Compartilhe conhecimento com sua rede.
// Leia também

Artigos relacionados