Configuração
Tudo pode ser configurado através do Painel de Configurações — abra-o com Vibes to Bucks: Cost Tracking & Billing Setup no comando palette do Cursor. Não é necessário editar YAML.
1. Conecte seu software de faturamento (Pro)
Em Billing software, escolha Moneybird ou Harvest.
Insira seu API Token e clique em Test Connection. Uma vez conectado, os menus suspensos Administration e User serão preenchidos automaticamente a partir da sua conta. Selecione a administração e o usuário corretos — as entradas de tempo serão criadas sob este usuário.
Seu token é armazenado de forma segura no SecretStorage do VS Code. Ele nunca é gravado em um arquivo de configuração ou disco.
Obtendo seu token API do Moneybird
- No Moneybird, vá para Settings (ícone de engrenagem, canto inferior esquerdo)
- Clique em External and AI connections
- Em External applications, clique em Create API token
- Dê um nome ao token (por exemplo, Vibes to Bucks), confirme e copie o token
- Cole-o no campo API Token no painel de configurações do Vibes to Bucks
Obtendo seu token do Harvest
- No Harvest, vá para Developers → Personal Access Tokens
- Clique em Create new personal access token, dê um nome e copie o token
- Você também precisará do seu Account ID — mostrado na mesma página ao lado do nome da sua conta
- Cole ambos no painel de configurações do Vibes to Bucks
2. Adicione regras de faturamento
As regras de faturamento informam à extensão qual cliente e projeto atribuir os custos de IA. Abra o Painel de Configurações e role até Add Billing Rule.
O que você quer rastrear?
- Repository — corresponde ao git remote. Use isso para a maioria dos projetos. A extensão detecta o remote automaticamente quando você tem um workspace aberto.
- Folder — corresponde ao caminho da pasta. Use isso para projetos sem um git remote ou para vincular uma pasta local a um branch específico de um repositório multicliente.
Campos da regra
| Campo | O que faz |
|---|---|
| Contact | O cliente no Moneybird ou Harvest para o qual esta regra fatura. Comece a digitar para pesquisar. |
| Project | O projeto sob esse cliente. Comece a digitar para pesquisar. |
| Hourly Rate (EUR) | Sua taxa para este cliente. Usado para converter o custo de IA em horas faturáveis. |
| How to calculate billable time | Multiply AI cost — aplica seu multiplicador de lucro antes de converter em horas. Pass through at face value — passa o custo bruto para o cliente. |
| Cost to Profit Multiplier | Mostrado apenas quando o modo de multiplicação é selecionado. O padrão é 5 (cada €1 de custo de IA = €5 faturados). |
| Weekly budget cap | Marque para definir um custo máximo de IA por semana para esta regra. A extensão alerta você em 25%, 50%, 75%, 85%, 95% e quando você excede o limite. |
| Billable | Marcado por padrão. Desmarque para rastrear custos para esta regra sem gerar uma entrada de tempo — útil para projetos internos ou custos absorvidos. |
Clique em Save Rule quando terminar.
Vários clientes em um repositório
Se diferentes branches do mesmo repositório pertencem a diferentes clientes, marque Multiple clients on this repo e salve. A regra então mostra um ícone de branch na tabela de Regras de Faturamento — clique nele para abrir Branch Rules.
Cada regra de branch adiciona um padrão (nome exato do branch como main, curinga simples como client-a/*, ou recursivo como feature/**) e seus próprios contato, projeto, taxa, modo de faturamento e configurações de orçamento.
As regras são correspondidas de cima para baixo — a primeira correspondência vence.
3. Custos não atribuídos
A seção Unassigned Costs (também acessível via Vibes to Bucks: Show Unassigned Costs) lista repositórios com custos de IA rastreados que ainda não correspondem a nenhuma regra de faturamento. Clique em Assign ao lado de um repositório para abrir o formulário Add Billing Rule com o repositório pré-preenchido.
4. Configurações
| Configuração | O que faz |
|---|---|
| Language | Idioma da interface do usuário para a extensão. 15 idiomas disponíveis. |
| Check for new costs every (minutes) | Com que frequência a extensão verifica o Cursor para novos usos. Padrão: 5. |
| Sync to billing software | Daily — sincroniza automaticamente no final do dia. Manual — execute Vibes to Bucks: Sync Now no comando palette quando quiser sincronizar. |
| Fallback exchange rate (USD → EUR) | Usado quando a taxa de câmbio ao vivo do BCE não está disponível. O painel mostra a taxa ao vivo atual e permite que você busque a mais recente com um clique. |
| Display Currency | EUR ou USD. Afeta como os custos são exibidos no painel e na barra de status. |
Clique em Save Settings após fazer alterações.
5. Resumo de IA (Pro)
Ao sincronizar, a extensão pode gerar descrições significativas de entradas de tempo a partir dos seus commits recentes do git usando um modelo de IA.
| Campo | O que faz |
|---|---|
| AI provider | Anthropic ou OpenAI. |
| Model | Selecione entre presets (por exemplo, Claude Haiku 4.5) ou insira um ID de modelo personalizado. |
| API key | Insira sua chave e clique em Save Key. Armazenada de forma segura no SecretStorage — nunca gravada em arquivos de configuração. |
Pré-requisitos
- Git deve estar instalado localmente. A extensão executa
git logpara buscar mensagens de commit para o resumo de IA. - Workspaces remotos SSH: Autenticação baseada em chave SSH (sem senha) é necessária. Git deve estar instalado na máquina remota. A extensão executa automaticamente
ssh <host> "git log ..."quando detecta um workspace SSH.
Avançado: referência YAML
O Painel de Configurações grava em ~/.vibes-to-bucks/config.yaml. Você pode editar este arquivo diretamente como alternativa — o painel e o YAML são totalmente intercambiáveis.
Exemplo completo
destination: moneybird
moneybird:
administration_id: "123456789"
user_id: "987654321"
polling:
interval_minutes: 5
sync_schedule: daily
fx:
source: ecb
fallback_rate: 0.92
mappings:
# Single-client repo
- repo: github.com/acme/website
contact_id: "100"
billing:
mode: multiplier
project_id: "200"
hourly_rate: 120
multiplier: 5
budget:
max_ai_cost_per_week: 50
# Multi-client repo — different branches → different clients
- repo: github.com/org/platform
multiclient: true
branches:
- pattern: "client-a/*"
contact_id: "300"
billing:
mode: multiplier
project_id: "400"
hourly_rate: 100
multiplier: 5
- pattern: dev
contact_id: "600"
billing:
mode: passthrough
project_id: "700"
hourly_rate: 0
# Folder fallback
- folder: /home/user/experiments
contact_id: "800"
billing:
mode: passthrough
project_id: "900"
hourly_rate: 100
Normalização de remotos
Os remotos Git são normalizados antes da correspondência. Todos estes resolvem para github.com/acme/website:
[email protected]:acme/website.githttps://github.com/acme/website.gitssh://[email protected]/acme/website.git
Escreva valores repo como host/org/repo — sem protocolo, sem .git.
Encontrando IDs do Moneybird
- Administration ID: visível na URL —
moneybird.com/{id}/... - Contact ID: abra um contato, o ID está na URL
- Project ID: Settings → Projects → clique em um projeto → ID na URL
- User ID: Settings → Users → seu usuário → ID na URL