Configuration
Tout peut être configuré via le panneau de paramètres — ouvre-le avec Vibes to Bucks: Cost Tracking & Billing Setup dans la palette de commandes de Cursor. Pas besoin d’éditer du YAML.
1. Connecte ton logiciel de facturation (Pro)
Sous Logiciel de facturation, choisis Moneybird ou Harvest.
Entre ton API Token et clique sur Test Connection. Une fois connecté, les listes déroulantes Administration et User se remplissent automatiquement à partir de ton compte. Sélectionne la bonne administration et utilisateur — les entrées de temps seront créées sous cet utilisateur.
Ton token est stocké en toute sécurité dans le SecretStorage de VS Code. Il n’est jamais écrit dans un fichier de config ou sur le disque.
Obtenir ton token API Moneybird
- Dans Moneybird, va dans Paramètres (icône d’engrenage, en bas à gauche)
- Clique sur Connexions externes et IA
- Sous Applications externes, clique sur Créer un token API
- Donne un nom au token (par ex. Vibes to Bucks), confirme et copie le token
- Colle-le dans le champ API Token du panneau de paramètres de Vibes to Bucks
Obtenir ton token Harvest
- Dans Harvest, va dans Developers → Personal Access Tokens
- Clique sur Create new personal access token, donne-lui un nom et copie le token
- Tu as aussi besoin de ton Account ID — visible sur la même page à côté de ton nom de compte
- Colle les deux dans le panneau de paramètres de Vibes to Bucks
2. Ajouter des règles de facturation
Les règles de facturation indiquent à l’extension à quel client et projet attribuer les coûts IA. Ouvre le panneau de paramètres et fais défiler jusqu’à Add Billing Rule.
Que veux-tu suivre ?
- Repository — correspond par remote git. Utilise cela pour la plupart des projets. L’extension détecte automatiquement le remote lorsque tu as un espace de travail ouvert.
- Folder — correspond par chemin de dossier. Utilise cela pour les projets sans remote git, ou pour lier un dossier local à une branche spécifique d’un dépôt multi-client.
Champs de la règle
| Champ | Ce qu’il fait |
|---|---|
| Contact | Le client dans Moneybird ou Harvest auquel cette règle facture. Commence à taper pour rechercher. |
| Project | Le projet sous ce client. Commence à taper pour rechercher. |
| Hourly Rate (EUR) | Ton tarif pour ce client. Utilisé pour convertir le coût IA en heures facturables. |
| How to calculate billable time | Multiply AI cost — applique ton multiplicateur de profit avant de convertir en heures. Pass through at face value — passe le coût brut au client. |
| Cost to Profit Multiplier | Affiché uniquement lorsque le mode multiplication est sélectionné. Par défaut, c’est 5 (chaque 1 € de coût IA = 5 € facturés). |
| Weekly budget cap | Coche pour définir un coût IA max par semaine pour cette règle. L’extension te prévient à 25%, 50%, 75%, 85%, 95% et lorsque tu dépasses la limite. |
| Billable | Coché par défaut. Décoche pour suivre les coûts pour cette règle sans générer une entrée de temps — utile pour les projets internes ou les frais absorbés. |
Clique sur Save Rule quand c’est terminé.
Plusieurs clients sur un même dépôt
Si différentes branches du même dépôt appartiennent à différents clients, coche Multiple clients on this repo et enregistre. La règle affiche alors une icône de branche dans le tableau des règles de facturation — clique dessus pour ouvrir Branch Rules.
Chaque règle de branche ajoute un pattern (nom exact de la branche comme main, joker simple comme client-a/*, ou récursif comme feature/**) et son propre contact, projet, tarif, mode de facturation et paramètres de budget.
Les règles sont appliquées de haut en bas — la première correspondance l’emporte.
3. Coûts non assignés
La section Unassigned Costs (également accessible via Vibes to Bucks: Show Unassigned Costs) liste les dépôts avec des coûts IA suivis qui ne correspondent à aucune règle de facturation pour le moment. Clique sur Assign à côté d’un dépôt pour ouvrir le formulaire Add Billing Rule avec le dépôt pré-rempli.
4. Paramètres
| Paramètre | Ce qu’il fait |
|---|---|
| Language | Langue de l’interface utilisateur pour l’extension. 15 langues disponibles. |
| Check for new costs every (minutes) | Fréquence à laquelle l’extension interroge Cursor pour de nouvelles utilisations. Par défaut : 5. |
| Sync to billing software | Daily — synchronise automatiquement en fin de journée. Manual — exécute Vibes to Bucks: Sync Now depuis la palette de commandes quand tu veux synchroniser. |
| Fallback exchange rate (USD → EUR) | Utilisé lorsque le taux en direct de la BCE n’est pas disponible. Le panneau affiche le taux en direct actuel et te permet de récupérer le dernier en un clic. |
| Display Currency | EUR ou USD. Affecte la manière dont les coûts sont affichés dans le tableau de bord et la barre d’état. |
Clique sur Save Settings après avoir apporté des modifications.
5. Résumé IA (Pro)
Lors de la synchronisation, l’extension peut générer des descriptions d’entrées de temps significatives à partir de tes récents commits git en utilisant un modèle IA.
| Champ | Ce qu’il fait |
|---|---|
| AI provider | Anthropic ou OpenAI. |
| Model | Sélectionne parmi les préréglages (par ex. Claude Haiku 4.5) ou entre un ID de modèle personnalisé. |
| API key | Entre ta clé et clique sur Save Key. Stockée en toute sécurité dans SecretStorage — jamais écrite dans les fichiers de config. |
Prérequis
- Git doit être installé localement. L’extension exécute
git logpour récupérer les messages de commit pour le résumé IA. - Espaces de travail distants SSH : l’authentification par clé SSH (sans mot de passe) est requise. Git doit être installé sur la machine distante. L’extension exécute automatiquement
ssh <host> "git log ..."lorsqu’elle détecte un espace de travail SSH.
Avancé : Référence YAML
Le panneau de paramètres écrit dans ~/.vibes-to-bucks/config.yaml. Tu peux éditer ce fichier directement comme alternative — le panneau et le YAML sont entièrement interchangeables.
Exemple complet
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
Normalisation des remotes
Les remotes Git sont normalisés avant la correspondance. Tous ceux-ci se résolvent en github.com/acme/website :
[email protected]:acme/website.githttps://github.com/acme/website.gitssh://[email protected]/acme/website.git
Écris les valeurs repo comme host/org/repo — sans protocole, sans .git.
Trouver les IDs Moneybird
- Administration ID : visible dans l’URL —
moneybird.com/{id}/... - Contact ID : ouvre un contact, l’ID est dans l’URL
- Project ID : Paramètres → Projets → clique sur un projet → ID dans l’URL
- User ID : Paramètres → Utilisateurs → ton utilisateur → ID dans l’URL