Configuração
Tudo pode ser configurado através do Painel de Configurações — abra-o com Vibes to Bucks: Cost Tracking & Billing Setup no palete de comandos do Cursor. Não é necessário editar YAML.
1. Conecte o seu software de faturação (Pro)
Em Software de faturação, escolha Moneybird ou Harvest.
Insira o seu Token API e clique em Testar Conexão. Uma vez conectado, as listas suspensas de Administração e Usuário são preenchidas 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.
O seu token é armazenado de forma segura no SecretStorage do VS Code. Nunca é gravado num ficheiro de configuração ou disco.
Obter o seu token API do Moneybird
- No Moneybird, vá a Configurações (ícone de engrenagem, canto inferior esquerdo)
- Clique em Conexões Externas e de IA
- Em Aplicações Externas, clique em Criar token API
- Dê um nome ao token (por exemplo, Vibes to Bucks), confirme e copie o token
- Cole-o no campo de Token API no painel de Configurações do Vibes to Bucks
Obter o seu token do Harvest
- No Harvest, vá a Desenvolvedores → Tokens de Acesso Pessoal
- Clique em Criar novo token de acesso pessoal, dê-lhe um nome e copie o token
- Também precisa do seu ID de Conta — mostrado na mesma página ao lado do nome da sua conta
- Cole ambos no painel de Configurações do Vibes to Bucks
2. Adicionar regras de faturação
As regras de faturação indicam à extensão a que cliente e projeto atribuir os custos de IA. Abra o Painel de Configurações e desça até Adicionar Regra de Faturação.
O que deseja rastrear?
- Repositório — corresponde ao remoto do git. Use isto para a maioria dos projetos. A extensão deteta automaticamente o remoto quando tem um espaço de trabalho aberto.
- Pasta — corresponde ao caminho da pasta. Use isto para projetos sem um remoto git ou para ligar uma pasta local a um ramo específico de um repositório multicliente.
Campos da regra
| Campo | O que faz |
|---|---|
| Contato | O cliente no Moneybird ou Harvest a quem esta regra fatura. Comece a digitar para pesquisar. |
| Projeto | O projeto sob esse cliente. Comece a digitar para pesquisar. |
| Taxa Horária (EUR) | A sua taxa para este cliente. Usada para converter o custo de IA em horas faturáveis. |
| Como calcular o tempo faturável | Multiplicar custo de IA — aplica o seu multiplicador de lucro antes de converter em horas. Passar pelo valor nominal — passa o custo bruto para o cliente. |
| Multiplicador de Custo para Lucro | Apenas mostrado quando o modo de multiplicação é selecionado. O padrão é 5 (cada €1 de custo de IA = €5 faturados). |
| Limite de orçamento semanal | Marque para definir um custo máximo de IA por semana para esta regra. A extensão alerta-o a 25%, 50%, 75%, 85%, 95% e quando ultrapassa o limite. |
| Faturável | 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 Salvar Regra quando terminar.
Vários clientes num repositório
Se diferentes ramos do mesmo repositório pertencem a diferentes clientes, marque Vários clientes neste repositório e salve. A regra então mostra um ícone de ramo na tabela de Regras de Faturação — clique nele para abrir Regras de Ramo.
Cada regra de ramo adiciona um padrão (nome exato do ramo como main, curinga simples como client-a/*, ou recursivo como feature/**) e o seu próprio contato, projeto, taxa, modo de faturação 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 Custos Não Atribuídos (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 faturação. Clique em Atribuir ao lado de um repositório para abrir o formulário de Adicionar Regra de Faturação com o repositório pré-preenchido.
4. Configurações
| Configuração | O que faz |
|---|---|
| Idioma | Idioma da interface para a extensão. 15 idiomas disponíveis. |
| Verificar novos custos a cada (minutos) | Com que frequência a extensão consulta o Cursor para novos usos. Padrão: 5. |
| Sincronizar com software de faturação | Diariamente — sincroniza automaticamente no final do dia. Manual — execute Vibes to Bucks: Sync Now no palete de comandos quando quiser sincronizar. |
| Taxa de câmbio de reserva (USD → EUR) | Usada quando a taxa do BCE ao vivo não está disponível. O painel mostra a taxa ao vivo atual e permite que obtenha a mais recente com um clique. |
| Moeda de Exibição | EUR ou USD. Afeta como os custos são mostrados no painel e na barra de status. |
Clique em Salvar Configurações 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 |
|---|---|
| Fornecedor de IA | Anthropic ou OpenAI. |
| Modelo | Selecione de predefinições (por exemplo, Claude Haiku 4.5) ou insira um ID de modelo personalizado. |
| Chave API | Insira a sua chave e clique em Salvar Chave. Armazenada de forma segura no SecretStorage — nunca escrita em ficheiros 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. - Espaços de trabalho remotos SSH: Autenticação baseada em chave SSH (sem senha) é necessária. O Git deve estar instalado na máquina remota. A extensão executa automaticamente
ssh <host> "git log ..."quando deteta um espaço de trabalho SSH.
Avançado: referência YAML
O Painel de Configurações escreve para ~/.vibes-to-bucks/config.yaml. Pode editar este ficheiro 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 do 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 de repo como host/org/repo — sem protocolo, sem .git.
Encontrar IDs do Moneybird
- ID de Administração: visível na URL —
moneybird.com/{id}/... - ID de Contato: abra um contato, o ID está na URL
- ID de Projeto: Configurações → Projetos → clique num projeto → ID na URL
- ID de Usuário: Configurações → Usuários → seu usuário → ID na URL