Quanto custou cada agente? — Do CLAUDE.md ao mod no Claude Code
As peças de extensão do Claude Code em ordem, do CLAUDE.md ao mod, o que cada uma alcança e o csr-cockpit, o painel que reparte o custo da sessão por agente e por turno.
TL;DR · o artigo em 5 pontos
- O Claude Code ganhou as peças de extensão uma depois da outra:
CLAUDE.md, MCP, comandos, hooks, subagentes, linha de status, estilos de saída, plugins, skills e temas. Nenhuma desenha um painel: quase todas entregam texto ou ferramentas ao modelo, ou rodam um script por fora. - O mod, oficial desde a versão 2.1.287 (01/10/2026), é código que roda dentro do Claude Code, guarda estado e desenha na tela.
- Um plugin é a pasta que se instala, e um marketplace é um repositório com um
marketplace.json. Um repositório público no GitHub basta. - O csr-cockpit é um mod que só observa: mostra agentes, diffs, contexto, arquivos e turnos, com o custo de cada agente e de cada turno.
- O custo por agente é uma repartição feita pelo mod. O Claude Code informa o custo da sessão inteira, não o de cada agente.
Neste artigo
Quanto custou cada agente que o Claude Code rodou no seu último pedido? E cada turno da conversa?

Agente, aqui, é o subagente: o ajudante que o Claude Code chama para cuidar de uma parte da tarefa. Turno é cada pedido seu, com tudo o que ele desencadeia. Até os mods virarem oficiais, em 01/10/2026, a ferramenta não me mostrava essa conta: o /usage mostra quanto a sessão inteira custou e, nos planos pagos, que fatia do uso foi para subagentes, em percentual. Quanto custou cada agente, ou cada turno, ele não diz.
Desde aquele dia dá para fazer a conta, por causa de uma peça nova: o mod, código que roda dentro do Claude Code e desenha na interface. No mesmo dia publiquei um: o csr-cockpit, o painel da imagem. Ele está no claude-code-kit, um repositório meu.
O número de cada agente é uma conta do painel, não do Claude Code, que continua informando só o custo da sessão inteira. Como o painel reparte esse custo, e onde a conta pode errar, está em O que ainda não dá.
Este post conta como o Claude Code chegou até o mod, peça por peça. Quando comecei, eu não conhecia skill, agente, hook, plugin, marketplace nem mod: aprendi tudo naquele dia. Por isso o texto explica o básico de cada peça e aponta a documentação oficial para quem quiser se aprofundar. Não é um tutorial de código.
A linha do tempo
O Claude Code foi lançado em 24/02/2025, como prévia de pesquisa, e o mod chegou em 01/10/2026. São pouco mais de 19 meses, e nesse intervalo a ferramenta ganhou, uma depois da outra, as peças desta tabela:
| Quando | Peça |
|---|---|
| 24/02/2025 (lançamento) | CLAUDE. e MCP: um texto que o modelo lê em toda sessão, e ferramentas trazidas de fora |
| 05/03/2025 (0.2.31) | Comandos próprios: um prompt salvo, chamado por /nome |
| 30/06/2025 (1.0.38) | Hooks: um comando do sistema que roda sozinho num evento da sessão |
| 24/07/2025 (1.0.60) | Subagentes: um ajudante com papel e contexto próprios |
| 07/08/2025 (1.0.71) | Linha de status: uma linha no rodapé, escrita por um script seu |
| 14/08/2025 (1.0.81) | Estilos de saída: um jeito de responder |
| 09/10/2025 (2.0.12) | Plugins e marketplaces: a embalagem que junta as peças, e o catálogo de onde ela se instala |
| 16/10/2025 (2.0.20) | Skills: instruções que o modelo carrega quando o pedido combina com a descrição delas |
| 22/04/2026 (2.1.118) | Temas próprios: as cores da interface |
| 01/10/2026 (2.1.287) | Mods: código que roda dentro do Claude Code e desenha na tela |
Entre parênteses está a versão em que a peça entrou. Cada data é a da publicação dessa versão no npm, e a linha de cada peça está no changelog do repositório.
O CLAUDE. e o MCP são a exceção: não têm linha de estreia, porque já estavam na documentação do dia do lançamento.
Eu leio essa tabela como uma escada, e em cada degrau faço a mesma pergunta: com isso eu conseguiria aquele painel? Para responder, uma distinção ajuda. O modelo é a IA, o Claude: lê texto e responde. O Claude Code é o programa que você abre no terminal: manda o texto ao modelo, executa as ferramentas que ele pede (ler um arquivo, rodar um comando) e desenha a tela. Um painel só pode vir do programa.
Mais um termo, que volta até o fim do post. Tudo o que o modelo tem na frente para responder (as instruções, a conversa, os arquivos lidos) é o contexto. Ele tem tamanho máximo e é medido em tokens, os pedaços de palavra em que o modelo conta o texto e pelos quais se cobra.
Cada peça e o que ela não alcança
CLAUDE.. Um arquivo de texto, em geral na raiz do projeto, que o Claude Code entrega ao modelo no começo de toda sessão. É onde ficam as instruções permanentes: como rodar os testes, as convenções do time, o que nunca fazer. Use para o que vale sempre. Para o painel ele não serve: é texto para o modelo ler.
MCP. O Model Context Protocol liga o modelo a sistemas de fora: um servidor MCP entrega ferramentas novas, como consultar um banco de dados ou controlar um navegador. Use quando o modelo precisa alcançar algo que ele não enxerga. O painel continua fora de alcance: o MCP dá ferramentas ao modelo, e a tela segue a mesma.
Comando. Um prompt salvo num arquivo Markdown, que você chama digitando /nome. Serve para o pedido que se repete toda semana. Poupa a digitação, e só: o que chega ao modelo é o mesmo texto.
Hook. Na forma mais comum, um comando do sistema que o Claude Code roda sozinho num evento: no início da sessão, antes de uma ferramenta, depois de uma edição. É a peça para o que tem de acontecer sempre, sem depender de o modelo lembrar. O exemplo do kit é o responder-em-portugues, um echo no início da sessão. Das peças antigas, é a que vê os eventos passarem. Só que roda fora do Claude Code (nota: o mod vai rodar dentro), como um processo à parte, e não desenha nada.
Subagente. É o agente da pergunta do começo: um ajudante com papel próprio, ferramentas limitadas e um contexto só dele (quer dizer: não ocupa o da conversa), que faz a tarefa e devolve um resumo. Use para isolar o trabalho que encheria a conversa principal, como uma busca em dezenas de arquivos. No kit há dois, o pesquisador e o critico, cada um definido por um arquivo de instruções.
Linha de status. Uma linha no rodapé, impressa por um script seu, que recebe do Claude Code os dados da sessão, entre eles o custo. É a peça que mais se parece com o painel. Mas é uma linha só, sem clique, e o custo que chega a ela é o da sessão inteira.
Estilo de saída. Um jeito de responder: o papel, o tom e o formato das respostas de uma sessão. O professor do kit explica o porquê de cada passo. Muda o texto da resposta, não a tela.
Skill. Uma pasta com um arquivo SKILL.: instruções que o modelo carrega quando o pedido combina com a descrição, ou quando você chama pelo nome. É a peça para o procedimento que você vive colando na conversa. Os comandos próprios, lá de cima, foram incorporados às skills, e os arquivos antigos continuam funcionando. No kit, a mensagem-de-commit escreve a mensagem de commit das mudanças já preparadas com git add.
Plugin. É a embalagem: uma pasta com skills, agentes, hooks, estilos e servidores MCP, que se instala de uma vez. Dentro dela, o arquivo . é o manifesto, que descreve o plugin. Use quando um segundo projeto, ou uma segunda pessoa, precisa da mesma configuração. O exemplos do kit leva uma skill, um agente, um hook e um estilo de saída. Sozinho, o plugin não acrescenta poder nenhum: empacota o que já existia.
Tema. As cores da interface, num arquivo JSON que parte de um tema pronto e troca algumas cores. O tinta-azul troca três. Muda a cor do que já está na tela.
Nenhuma dessas peças chega ao painel. O CLAUDE., o comando, o subagente, o estilo e a skill são texto para o modelo. O MCP dá ferramentas a ele. O hook e a linha de status rodam um script do lado de fora. O plugin embala, e o tema troca cores. Faltava a peça que roda por dentro.
Antes de chegar a ela, três seções sobre como as peças se instalam, porque foi ali que eu mais me perdi.
Skill, agente ou plugin: o que eu demorei a entender
Esta é a lista do que me confundiu, antes do detalhe. Marketplace é o catálogo de onde os plugins se instalam, e é o assunto da seção seguinte.
- Skill, agente e plugin não são alternativas. A skill é uma instrução. O agente é quem executa uma tarefa numa conversa à parte. O plugin é a pasta que entrega os dois.
- Mod é plugin, não skill. A skill é um texto que o modelo lê. O mod é código que o Claude Code executa. Os dois se instalam do mesmo jeito.
- Não há build. Nada de
npm installnem de empacotador: o Claude Code lê o código direto da pasta. - O que se instala é a pasta inteira. Cada item do catálogo aponta para uma pasta, e tudo o que está nela vem junto.
- Uma peça avulsa não precisa de
plugin.. Para instalar uma skill sozinha, basta a entrada dela no catálogo, que faz o papel de manifesto.json - O nome do repositório e o nome do marketplace são coisas diferentes. O meu repositório se chama
claude-code-kit, e o marketplace,cesarschutz. O primeiro aparece na hora de cadastrar; o segundo, na hora de instalar. - Não precisa de conta empresarial. Um marketplace é um repositório git. Um repositório público no GitHub basta.
- A sessão aberta continua na versão antiga. Depois de atualizar um plugin, a sessão que já estava aberta segue com a versão que carregou, até um
/reload-pluginsou até ser reaberta.
Marketplace: o catálogo num repositório
Um marketplace é um repositório com um arquivo ., de três campos obrigatórios: name, owner e plugins. Cada entrada de plugins é um item instalável, com um name e um source, que é a pasta dele dentro do repositório. Este é um pedaço do meu, só com os campos de que este post fala e com as descrições encurtadas:
{ "name": "cesarschutz", "owner": { "name": "Cesar Schutz" }, "plugins": [ { "name": "csr-cockpit", "source": "./plugins/csr-cockpit", "description": "Mod: painel ao lado da conversa..." }, { "name": "explicar-erro", "source": "./skills/explicar-erro", "description": "Exemplo de skill: explica um erro ou stack trace...", "skills": ["./"] (nota: é este campo que dispensa o plugin.json) } ]}A primeira entrada é um plugin completo: a pasta plugins/csr-cockpit tem o seu .. A segunda é uma peça avulsa: não há plugin., e a própria entrada diz o que a pasta traz, no campo skills.
Instalar e atualizar seguem o caminho da lousa, em cinco passos, do repositório no GitHub à sessão aberta na sua máquina. O play desenha tudo desde o início, e um clique num passo da lista leva a lousa até ele.
A regra dos dois últimos passos está na referência de carregamento dos plugins: o Claude Code calcula uma versão para cada plugin instalado e só vê atualização quando ela muda. Com o campo version no plugin., vale esse número, não importa quantos commits eu publique. Sem ele, que é o caso das peças avulsas, a versão é o commit.
Num marketplace de terceiros, como o meu, a atualização automática vem desligada: quem instalou roda o claude plugin update quando quiser a versão nova.
conferido em out/2026
Os comandos
Estes são os comandos que eu usei. O resto está na referência dos comandos de plugin.
No terminal:
| Comando | O que faz |
|---|---|
claude plugin marketplace add <dono>/<repo> | cadastra um marketplace a partir de um repositório do GitHub |
claude plugin install <item>@<marketplace> | instala um item do catálogo |
claude plugin list | lista o que está instalado, com a versão e o estado |
claude plugin details <item> | mostra as peças de um plugin e o custo delas em tokens |
claude plugin marketplace update <marketplace> | renova o catálogo, sem mexer no que está instalado |
claude plugin update <item>@<marketplace> | atualiza um plugin para a versão mais nova do catálogo |
claude plugin uninstall <item>@<marketplace> | remove o plugin |
claude plugin validate <pasta> | confere o manifesto e as peças de uma pasta; com --strict, os avisos viram erro |
claude plugin test <pasta> | roda os testes de um mod |
claude --plugin-dir <pasta> | abre uma sessão com o plugin de uma pasta local, sem instalar; a cópia local ganha da instalada |
Dentro da sessão:
| Comando | O que faz |
|---|---|
/plugin | abre a tela de plugins e marketplaces |
/reload-plugins | aplica na sessão aberta o que mudou nos plugins |
/theme e /output-style | escolhem o tema e o estilo de saída |
/cockpit | abre e fecha o painel do csr-cockpit |
O que é um mod
O mod é um plugin com uma diferença. Num plugin comum, o arquivo hooks/hooks. lista os hooks: que comando do sistema rodar em cada evento. No mod, o mesmo arquivo aponta um módulo, que é um arquivo de código.
{ "modules": ["./register.tsx"] } (nota: o código do mod)Esse módulo exporta uma função register(on). Dentro dela, cada on(...) liga uma função a um evento do Claude Code: uma chamada de ferramenta, o início de um turno, um pedaço da interface sendo desenhado. A função recebe três coisas: $, a API dos mods; e, o evento; e next, que passa o evento adiante, como num middleware (nota: sem chamar next, o hook responde). Este é o hook do cockpit que registra um subagente novo, com o miolo resumido num comentário:
export const register: Register = on => { on('agent.spawn', async ($, e, next) => { const iniciado = await next(e) (nota: o evento segue adiante como chegou) // guarda o agente e o pedido dele no estado da sessão return iniciado })}A documentação também chama de hook cada função dessas. A ideia é a do hook de antes, reagir a um evento, só que agora é código rodando dentro do Claude Code, que pode observar o evento, reescrevê-lo ou responder no lugar do programa. Com isso, um mod:
- roda dentro do Claude Code, no processo dele, e não como um script à parte;
- guarda estado (lembra o que viu) entre um evento e outro, pelo tempo da sessão;
- registra um comando
/nomeque executa código na hora, sem passar pelo modelo; - desenha: um painel ao lado da conversa e uma faixa acima do prompt, a caixa onde se digita o pedido.
Das peças da tabela, é a primeira que roda ali dentro e a primeira que desenha.
A figura junta as peças no lugar em que cada uma age. Do lado de fora ficam o texto que vai para o contexto do modelo (azul), as ferramentas do MCP (âmbar) e o script do hook (verde), quase tudo dentro da pasta do plugin (roxo). Do lado de dentro, só o mod (petróleo): o código dele vem na mesma pasta, recebe os eventos, guarda estado e desenha o painel e a faixa. Com o mouse numa cor da legenda, só aquele papel fica aceso.
Os mods passaram por um período de acesso antecipado em setembro de 2026, só para quem ligava uma variável de ambiente, e são oficiais a partir da 2.1.287, ligados por padrão.
conferido em out/2026
O cockpit
O csr-cockpit é um painel ao lado da conversa, aberto e fechado com /cockpit, com cinco abas. Cada uma responde a uma pergunta:
| Aba | A pergunta | O que mostra |
|---|---|---|
| Agentes | Quem está trabalhando agora, e em quê? | cada subagente com o modelo, o tempo, o contexto dele, o custo atribuído, as chamadas e a tarefa |
| Diffs | O que mudou neste turno? | cada edição, com as linhas que saíram e as que entraram |
| Contexto | Quanto do contexto sobra, e quanto já custou? | o percentual usado, o custo da sessão e do último turno e o limite de uso do plano |
| Arquivos | O que foi lido e rodado, e por quem? | os arquivos lidos e os comandos Bash, com quem leu ou rodou, o status e a duração |
| Turnos | O que aconteceu, na ordem? | um registro por pedido, com a duração, o custo, as ferramentas e as falhas |
A aba Agentes responde à primeira pergunta do post. O custo de cada agente é a parte do custo da sessão que o cockpit atribuiu a ele. Na sessão das imagens, foram US$ 0,04 para um agente e US$ 0,02 para o outro:

A aba Turnos responde à segunda. Cada pedido meu é um turno, com o que ele custou e o que desencadeou. O custo do turno também é conta do cockpit (nota: o fim menos o começo): quanto o custo da sessão subiu do começo ao fim do pedido.

Clicar no nome de um agente, de um comando Bash ou de um turno abre o detalhe: o pedido, as chamadas e a resposta. E acima do prompt fica uma linha de resumo, com o painel aberto ou fechado:

A regra do cockpit é só observar. Nenhum hook dele bloqueia ou altera uma chamada de ferramenta ou uma resposta do modelo: o evento passa adiante como chegou, e o resultado volta como veio.
Ele não faz chamada de rede e não grava arquivo. Do disco, lê uma coisa só: o conteúdo antigo de um arquivo antes de uma escrita, para o diff mostrar o que mudou de verdade. O que ele registra fica no estado da sessão e some com ela.
Nada nele gasta token, porque o mod não chama o modelo. A única coisa que dispara requisições a mais é o botão “Contagem exata”, da aba Contexto, que troca a estimativa local pela contagem de verdade. Quem faz essas requisições é o Claude Code, e só quando eu aperto o botão.
Como se testa um mod
Testei o cockpit em três camadas, da mais barata para a mais cara.
claude plugin validate. Num mod, além de conferir o manifesto, ele lista os eventos que o mod escuta e as chamadas que faz à API, sem executar nada. Serve também para auditar o mod de outra pessoa antes de instalar. No cockpit, a lista não tem chamada de rede, de gravação de arquivo nem de processo; do disco, só aquela leitura.
claude plugin test. Roda os testes do mod contra um Claude Code de mentira, sem login e sem rede: o teste dispara os eventos, monta o painel, aperta os botões e confere o que foi desenhado. O cockpit tem 15 testes, e um deles confere a regra de só observar.
Carimbo: rodado em 02/10/2026: 15 de 15
Uma sessão de verdade. Abri o Claude Code num projeto de exemplo, com o mod carregado por claude --plugin-dir. Carregada assim, a pasta fica vigiada: o Claude Code recarrega o mod a cada arquivo salvo. É a única das três camadas que mostra o painel desenhado no terminal.
O que ainda não dá
São os limites da versão 0.5.0, em 02/10/2026.
O mais importante: o custo por agente não é um número oficial. O Claude Code informa o custo da sessão inteira, não o de cada agente. O cockpit reparte esse custo: ao fim de cada resposta do modelo, o que o custo da sessão subiu vai para quem deu a resposta. Cada aumento vai para um dono só, então nada é contado duas vezes, e o que não vai para agente nenhum é o gasto da conversa principal: na sessão das imagens, os dois agentes ficaram com US$ 0,06 dos US$ 0,15. É uma atribuição feita pelo mod e, se duas respostas terminam no mesmo instante, uma fração pode cair no agente vizinho.
O próprio valor em dólar é uma estimativa: o Claude Code calcula a preço de tabela, a partir dos tokens. Para quem paga assinatura ele não é cobrança, e serve para comparar um agente com outro.
Os outros limites:
- Não há custo por comando Bash. O cockpit mostra custo por agente e por turno. Um comando Bash aparece com o status e a duração.
- O raciocínio interno de um agente não aparece. O Claude Code não o expõe. O detalhe mostra só o texto que o agente escreveu.
- O código de saída do Bash não vem como campo. Em caso de falha, o cockpit tira o código do texto de erro. Em caso de sucesso, a linha mostra só a marca de concluído e a duração.
- A API de mods ainda pode mudar de uma versão para outra.
- No aplicativo de desktop eu não conferi. Ele traz a própria cópia do Claude Code, que pode estar numa versão mais antiga que a do terminal, e o desenho do painel eu só conferi no terminal.
O repositório
O claude-code-kit é público, com licença MIT. Em 02/10/2026 ele tem:
- o
csr-cockpit, na versão 0.5.0; - o
exemplos, um plugin com uma skill, um agente, um hook e um estilo de saída; - sete peças avulsas: duas skills, dois agentes, um estilo de saída, um tema e um hook.
Para instalar o cockpit são dois comandos, e ele pede o Claude Code 2.1.287 ou mais novo:
claude plugin marketplace add cesarschutz/claude-code-kitclaude plugin install csr-cockpit@cesarschutzLembrete: Se o /cockpit não aparecer depois de instalar, confira a versão com claude --version.
O README. explica o catálogo, e o CONTRIBUTING., como acrescentar um item. Vou continuar colocando coisas lá.
Para ir além do básico, eu começaria pela página Extend Claude Code, que compara as peças e diz quando usar cada uma, e pelos mods de exemplo da Anthropic.
Fontes
- Anthropic — Claude 3.7 Sonnet and Claude Code (o lançamento em prévia de pesquisa, em 24/02/2025) e a documentação daquele dia, guardada pelo Internet Archive (o
CLAUDE.e o MCP já no lançamento)md - Claude — Claude Code mods (o anúncio dos mods, em 01/10/2026), Customize Claude Code with plugins (os plugins e os marketplaces, em 09/10/2025) e Introducing Agent Skills (as skills, em 16/10/2025)
- Claude Code — Changelog e CHANGELOG.md no GitHub (a versão em que cada peça entrou)
- npm — @anthropic-ai/claude-code, versões (a data de publicação de cada versão)
- Claude Code no GitHub — o commit de 09/09/2026 que publicou a pasta
mods/, com o aviso de acesso antecipado, e os mods de exemplo - Claude Code — Extend Claude Code (quando usar
CLAUDE., skills, subagentes, hooks, MCP e plugins) e Explore the context window (o contexto)md - Claude Code — How Claude remembers your project, Extend Claude with skills (com os comandos próprios) e Connect Claude Code to tools via MCP
- Claude Code — Automate actions with hooks, Create custom subagents e Output styles
- Claude Code — Customize your status line e Configure your terminal (os temas próprios)
- Claude Code — Plugins overview, Create a marketplace e Marketplace reference (a entrada que faz o papel de manifesto)
- Claude Code — Install and manage plugins (o cadastro do marketplace e as atualizações), Plugin loading reference (como a versão é calculada e o que acontece com a sessão aberta) e Plugin commands reference
- Claude Code — Mods overview (o que é um mod, a versão mínima, o acesso antecipado e o que um mod alcança), Create a mod e Test a mod
- Claude Code — Manage costs effectively (o que o
/usagemostra e como o valor em dólar é calculado) - Cesar Schutz — claude-code-kit e o README do csr-cockpit (as abas, as teclas, os limites e a privacidade)
tagclaudecode tagplugins