- What happens to my tracked cost data when I delete a billing rule?
- Your cost data is always preserved. Deleting a billing rule only removes the rule itself — it never touches your tracked cost history. The costs that were previously matched to that rule simply become unassigned and reappear in your Unassigned Costs view the next time you open the panel. From there you can remap them to a different project or client at any time.
- If I remap costs to a different project after deleting a billing rule, does the remapping apply to past costs too?
- Yes — remapping applies retroactively to all costs recorded since the extension was installed. Your raw cost events are stored permanently in the local database and are never tied to a specific billing rule. When you add a new mapping, the sync engine matches it against your entire recorded history. The next time you run Sync Now or Backfill, time entries are created or updated in your billing software for every matched day in the past, including days that were previously unassigned. Nothing is lost between the moment you delete a rule and the moment you create a new one.
- Do I need to configure anything before cost tracking starts?
- No. Vibes to Bucks starts recording your Cursor AI usage the moment it is installed — no billing account or mappings required. The extension uses sensible defaults (5-minute polling interval, EUR display, ECB exchange rates) and begins filling your local database immediately. You can explore the Usage Dashboard right away. Billing sync to Moneybird or Harvest is a separate step you configure when you are ready. Note: only costs that occur while the extension is installed and running are tracked. There is no way to import or recover costs from before installation.
- What is the difference between the Free and Pro plans?
- The Free plan gives you full cost tracking: continuous polling of your Cursor AI usage, a local SQLite ledger, the Usage Dashboard with charts, filters, period navigation, and sparklines, and multi-currency display across 30 currencies. The Pro plan (€24/year or €149 lifetime, with a 14-day free trial) unlocks integration sync to Moneybird or Harvest, AI cost budgets with overspend alerts, AI-powered commit summaries for time entry descriptions, dry-run and backfill sync commands, and a per-window status bar showing the resolved client name, project name, and weekly budget usage for the current workspace.
- What is the cost multiplier, and when should I use it?
- The cost multiplier scales your raw AI token cost before converting it to billable hours. Use it when you want to bill AI-assisted work at a profit margin — the multiplier captures the real value you deliver: prompt crafting, reviewing and iterating on output, integrating the result, and taking responsibility for the end product. A multiplier of 5 means every €1 of AI spend becomes €5 of billable revenue. Start at 5 and adjust to match your client agreements. If you only want cost recovery with no margin, use passthrough mode instead.
- Can I map multiple clients to the same repository?
- Yes. Use a multi-client repo mapping with branch patterns. Each branch pattern maps to a different contact and project in your billing software. For example, branches matching `client-a/*` can bill Client A while the `dev` branch bills Client B at a different rate. Branch patterns support exact match, single-level wildcard (`client-a/*`), and recursive wildcard (`feature/**`). If no branch pattern matches, the event is treated as unmapped and appears in your Unassigned Costs view.
- Does Vibes to Bucks work when I am connected to a remote server via SSH?
- Yes. The extension runs as a UI extension, which means it always executes on your local machine — even when Cursor is connected to a remote host via SSH. Your local `~/.vibes-to-bucks/` folder (ledger database, config, and license file) is always on your laptop, so the Usage Dashboard always has a complete view of all activity regardless of which remote workspace you are connected to. The one prerequisite for SSH remotes is passwordless key-based authentication so the extension can run `git log` on the remote to fetch commit messages.
- Does Vibes to Bucks support Cursor Cloud agents (Cursor's cloud-based development)?
- No — cloud-based development is not currently supported. Vibes to Bucks works by observing activity across your open local Cursor windows to attribute AI costs to the correct workspace. Cursor Cloud agents run entirely in Cursor's cloud infrastructure without a local Cursor window, so the extension cannot observe or attribute those costs. Any AI spend generated by cloud agents will appear as unassigned costs in your Unassigned Costs view. Local development and SSH remote development are fully supported.
- Where is my data stored, and does Vibes to Bucks send anything to the cloud?
- All cost data lives in a local SQLite database at `~/.vibes-to-bucks/ledger.db` on your machine. Nothing is sent to any Vibes to Bucks server. The extension makes four outbound connections: to Cursor's dashboard API to fetch your usage events, to the Frankfurter API (European Central Bank) to get daily exchange rates, to the Lemon Squeezy API to validate your Pro license (periodic re-check, no usage data sent), and to your billing provider (Moneybird or Harvest) when you sync. No telemetry, no analytics, no cost data leaves your machine except what goes directly to your own billing account.
- What happens if a project does not have a git remote?
- You can still track and bill AI costs for it using a folder-based mapping rule. Add a mapping with a `folder` path instead of a `repo` remote URL — for example, `/home/user/experiments`. Any Cursor usage events from that workspace folder will be matched to the specified client and project. Folder mappings are also useful as a catch-all rule to capture costs from scratch folders, early-stage repos, or any workspace that does not have a remote set up yet.
- How does Sync Now differ from Backfill?
- 'Sync Now' pushes billable hours to your billing software for all days recorded so far. 'Backfill' lets you sync a specific historical range — you pick a cutoff date and the extension creates or updates time entries for every matched day between that date and today. Both commands only cover costs recorded since the extension was installed; there is no way to recover costs from before that point. Both commands are idempotent: if a time entry already exists for a given day, client, and project and the totals have not changed, the sync skips it without making any API call.
- Which currencies are supported, and how is the exchange rate fetched?
- The extension supports all 30 currencies published by the Frankfurter API (European Central Bank source), including EUR, USD, GBP, CHF, JPY, CAD, AUD, and more. USD is always used as the base since Cursor costs are denominated in USD — for USD display no conversion is needed. For all other currencies, daily rates are fetched from Frankfurter and cached locally in SQLite. If the API is unreachable, the extension falls back to the `fallback_rate` value in your config (default 0.92, calibrated for EUR). For Backfill, the extension retrieves the historical rate for each specific past day so conversions are accurate even for entries created months ago. The display currency defaults to EUR and can be changed in the extension settings.