Branch Tracker for GitHub Copilot
Extensão de VS Code para auditar quantos créditos do GitHub Copilot cada tarefa consome: você inicia uma auditoria na branch em que vai trabalhar, usa o Copilot normalmente e finaliza. A extensão mostra os créditos da tarefa, os modelos usados e cada pedido feito no Copilot Chat.
Extensão independente, não oficial. Não é afiliada, patrocinada nem endossada pela GitHub ou pela Microsoft. GitHub e GitHub Copilot são marcas registradas da GitHub, Inc. Os valores são estimativas e não substituem a fatura oficial.
Como usar
- Abra um arquivo do projeto, na branch em que vai trabalhar.
- Clique em ● Auditar na barra de status (ou
Ctrl+Alt+Shift+A; no Mac, Cmd+Alt+Shift+A). Dê um nome à tarefa, se quiser (ex.: número do chamado), e tecle Enter.
- Trabalhe normalmente. A barra de status vira um cronômetro com os créditos até agora:
⏹ 00:42:13 · 12,3 cr · PROJ-123, com um alerta se você estiver em outra branch.
- Clique no cronômetro (ou use o mesmo atalho) para finalizar. Aparece um resumo com os créditos e o tempo, e um atalho para o painel.
Iniciou por engano? Passe o mouse no cronômetro e escolha Descartar: o consumo volta para "fora de auditoria" e a auditoria não fica no histórico.
Na primeira vez, a extensão se conecta sozinha à conta do Copilot já logada no VS Code (veja Conexão). Se o VS Code pedir permissão, o item da barra de status mostra ⚙ Copilot Tracker: clique e confirme em "Permitir".
O painel
Clique em Abrir painel no tooltip da barra de status (ou rode Copilot Tracker: Abrir painel):
- Auditoria atual: cronômetro, créditos e botões para finalizar ou descartar; sem auditoria, um botão para iniciar na branch atual.
- Totais do período (hoje, 7 dias, 30 dias, tudo): créditos em auditorias, número de auditorias, tempo auditado, valor de tabela e créditos fora de auditoria.
- Auditorias: uma linha por auditoria; clique (ou Enter) para ver os créditos por modelo e os pedidos do Copilot Chat feitos durante ela, com horário, conversa, modelo (o que respondeu e o escolhido, ex.:
auto), modo, tokens e créditos.
- Por projeto / branch: soma das auditorias de cada branch.
- Exportar CSV: uma linha por auditoria, com início, fim, duração, créditos e créditos por modelo.
Como o consumo é medido
- Fonte: a extensão lê o total de AI credits na sessão do Copilot ou na API de billing: a cada 2 min durante uma auditoria e a cada
pollMinutes (padrão 10) fora dela. Iniciar e finalizar fazem uma leitura na hora, então a auditoria recebe a diferença exata entre as duas.
- Dentro da auditoria: todo o crescimento da fonte vai para a branch dela, mesmo que você troque de branch ou use outra janela. Consumo feito fora do VS Code no mesmo período (github.com, Copilot CLI) também entra.
- Fora de auditoria: tudo vai para um único total, "(fora de auditoria)", sem rateio entre branches.
- Pedidos do chat: cada janela lê as conversas do Copilot Chat que o VS Code grava para ela e registra cada pedido com o modelo e os créditos informados pelo Copilot (
copilotCredits). Com isso, a auditoria mostra os créditos por modelo e o número acompanha o uso entre uma leitura e outra. O que a fonte mostrar além dos pedidos aparece como "sem detalhe de modelo".
- Primeira leitura: só marca o ponto de partida; o consumo anterior não é atribuído a nada.
- Auditoria esquecida: depois de
auditIdleMinutes (padrão 30) sem uso do editor nem do chat em nenhuma janela, ela é encerrada no horário do último uso, com aviso.
- Atraso da fonte: com
lagMinutes > 0, a auditoria ainda recebe o consumo lido até esse prazo depois do fim. Pedidos do chat feitos depois do fim não entram. Com a sessão do Copilot o atraso é praticamente zero.
- Várias janelas: só uma auditoria por vez, válida para todas; só uma janela lê a fonte por vez, para não contar o mesmo consumo duas vezes.
- Valor em US$: preço de tabela (US$ 0,01 por crédito), não a cobrança. Créditos dentro da franquia do plano não geram custo extra.
Conexão
Sessão do Copilot (sem token, padrão)
Sem token configurado, a extensão usa a conta GitHub já conectada ao VS Code e lê a cota mensal de créditos, como faz a própria extensão do Copilot. Se o VS Code ainda pedir permissão, use Usar sessão do Copilot no aviso, no tooltip ou no comando Copilot Tracker: Usar sessão do Copilot (sem token) e confirme em "Permitir".
- Consumo = franquia − restante + excedente, comparado entre leituras.
- Na virada do ciclo mensal o contador recomeça do zero; o pouco consumo entre a última leitura e o reset não é contado.
- Se a sessão do VS Code mudar para outra conta, a extensão avisa em vez de medir a conta errada.
- Usa um endpoint interno e não documentado do GitHub (
copilot_internal/user), que pode mudar sem aviso. Contas com cota ilimitada não têm contador e não podem ser medidas assim.
Token (API de billing)
Rode Copilot Tracker: Configurar conexão, escolha conta pessoal, organização, enterprise ou URL personalizada, e depois Copilot Tracker: Configurar token do GitHub.
- Conta pessoal (Copilot Pro/Pro+ pago por você): fine-grained token da sua conta com a permissão de usuário Plan: read. Só aparece o consumo do plano pago por você.
- Organização: fine-grained token ou GitHub App com permissão de organização Administration: read. O dono precisa ser admin da org.
- Enterprise: token de um enterprise owner ou billing manager.
- O token fica no cofre de segredos do VS Code (SecretStorage), nunca nas configurações nem nos logs. Ele tem permissão de admin de billing: não distribua para o time.
Ao trocar de fonte (escopo, conta, URL ou sessão), a primeira leitura vira só a nova linha de base.
Privacidade
- Tudo fica na sua máquina, em arquivos
.jsonl na pasta de dados da extensão (comando "Abrir pasta de dados"). Nada é enviado a servidores além da API do GitHub.
- São gravados só repositório, branch, modelo, horário e números. Nada de código, nomes de arquivo ou conteúdo de prompts.
- Das conversas do Copilot Chat são lidos só metadados (horário, modelo, modo, créditos, tokens) e o título da conversa, exibido no painel. O título não é gravado pela extensão nem vai para o log.
Erros e logs
- Com erro, o item da barra de status fica vermelho (ou mostra ⚙ se faltar conexão). O tooltip traz a mensagem e links para tentar de novo, reconfigurar e ver logs; o painel mostra o mesmo aviso no topo.
- Copilot Tracker: Mostrar logs abre o canal no painel Output com cada leitura, o corpo das respostas de erro e para onde foram os créditos. Para mais detalhe, use Developer: Set Log Level... → Copilot Tracker → Debug.
- Copilot Tracker: Testar conexão faz uma leitura sem gravar nada.
- Copilot Tracker: Conferir créditos do chat com a fonte compara os créditos dos pedidos do chat com o crescimento da fonte: rode uma vez, faça alguns pedidos, espere um ou dois minutos e rode de novo. A sessão arredonda a cota em 0,1 crédito e a API de billing pode atrasar, então diferenças pequenas são esperadas.
- Copilot Tracker: Diagnosticar cota da sessão (sem token) registra no log só os campos de cota e plano da sessão.
- Se a leitura das conversas do chat falhar (o formato é interno do Copilot e pode mudar), o erro vai para o log e a auditoria continua medindo pelo total da fonte, só sem o detalhe por pedido.
- Mensagens comuns: 401 = token inválido ou sessão expirada; 403 = token sem permissão de billing; 404 = escopo, conta ou URL errados; 422 = o usuário pode não pertencer à conta.
Configurações
| Chave |
Padrão |
Para que serve |
copilotTracker.scope |
session |
Fonte: session (sem token), user, organization ou enterprise |
copilotTracker.account |
vazio |
Seu login (conta pessoal ou sessão) ou slug da org/enterprise |
copilotTracker.githubUser |
vazio |
Login rastreado (vazio = sessão do VS Code ou dono do token) |
copilotTracker.apiUrl |
vazio |
Endpoint completo, com {account} como marcador (vazio = padrão do escopo) |
copilotTracker.pollMinutes |
10 |
Intervalo de leitura fora de auditoria (durante uma, 2 min) |
copilotTracker.idleMinutes |
5 |
Minutos sem eventos para a janela deixar de contar como em uso |
copilotTracker.auditIdleMinutes |
30 |
Minutos sem uso que encerram uma auditoria esquecida |
copilotTracker.lagMinutes |
0 |
Atraso da fonte; prazo extra para fechar o total da auditoria |
O atalho pode ser trocado em Preferences: Open Keyboard Shortcuts (comando "Iniciar/finalizar auditoria").
Limitações
- A fonte devolve créditos (tokens já convertidos pelo preço do modelo). 1 crédito = US$ 0,01 de tabela.
- Só uma auditoria por vez. Consumo de outro lugar durante a auditoria entra nela, porque a fonte não informa a origem.
- Dois computadores com a extensão e a mesma conta contam o mesmo consumo duas vezes.
- O detalhe por pedido depende do formato interno das conversas do Copilot Chat; só pedidos feitos com a extensão ativa entram.
Build
npm install
npm run compile
npm run package # versão estável
npm run package:pre # pre-release (marcada como "Pre-Release" no Marketplace)
| |