配置

所有配置都可以通过设置面板完成——在 Cursor 命令面板中使用 Vibes to Bucks: Cost Tracking & Billing Setup 打开。无需编辑 YAML。


1. 连接你的计费软件 (Pro)

计费软件下,选择 MoneybirdHarvest

输入你的 API Token 并点击 测试连接。连接成功后,AdministrationUser 下拉菜单将自动从你的账户中填充。选择正确的管理和用户——时间条目将创建在该用户下。

你的 token 安全存储在 VS Code 的 SecretStorage 中。它不会被写入配置文件或磁盘。

获取你的 Moneybird API token

  1. 在 Moneybird 中,进入 设置(齿轮图标,左下角)
  2. 点击 外部和 AI 连接
  3. 外部应用程序下,点击 创建 API token
  4. 给 token 命名(例如 Vibes to Bucks),确认并复制 token
  5. 将其粘贴到 Vibes to Bucks 设置面板的 API Token 字段中

获取你的 Harvest token

  1. 在 Harvest 中,进入 开发者个人访问令牌
  2. 点击 创建新的个人访问令牌,命名并复制 token
  3. 你还需要你的 账户 ID——显示在同一页面的账户名称旁
  4. 将两者粘贴到 Vibes to Bucks 设置面板中

2. 添加计费规则

计费规则告诉扩展程序将 AI 成本分配给哪个客户和项目。打开设置面板并滚动到添加计费规则

你想跟踪什么?

规则字段

字段 功能
联系人 Moneybird 或 Harvest 中该规则计费的客户。开始输入以搜索。
项目 该客户下的项目。开始输入以搜索。
小时费率 (EUR) 你对该客户的费率。用于将 AI 成本转换为可计费小时。
如何计算可计费时间 乘以 AI 成本——在转换为小时之前应用你的利润倍数。按原价传递——将原始成本传递给客户。
成本到利润倍数 仅在选择乘法模式时显示。默认是 5(每 €1 的 AI 成本 = €5 的计费)。
每周预算上限 勾选以设置该规则每周的最大 AI 成本。扩展程序在达到 25%、50%、75%、85%、95% 和超出限制时提醒你。
可计费 默认勾选。取消勾选以跟踪该规则的成本而不生成时间条目——适用于内部项目或吸收的开销。

完成后点击 保存规则

一个仓库多个客户

如果同一仓库的不同分支属于不同客户,请勾选此仓库有多个客户并保存。规则在计费规则表中显示一个分支图标——点击它以打开分支规则

每个分支规则添加一个模式(精确分支名称如 main,单个通配符如 client-a/*,或递归如 feature/**)及其自己的联系人、项目、费率、计费模式和预算设置。

规则按从上到下匹配——第一个匹配的规则生效。


3. 未分配的成本

未分配的成本部分(也可以通过 Vibes to Bucks: Show Unassigned Costs 访问)列出尚未匹配任何计费规则的 AI 成本的仓库。点击仓库旁的 分配 打开添加计费规则表单,仓库信息已预填。


4. 设置

设置 功能
语言 扩展的 UI 语言。提供 15 种语言。
每隔(分钟)检查新成本 扩展程序轮询 Cursor 获取新使用情况的频率。默认:5。
同步到计费软件 每日——每天结束时自动同步。手动——当你想同步时,从命令面板运行 Vibes to Bucks: Sync Now
备用汇率 (USD → EUR) 当实时 ECB 汇率不可用时使用。面板显示当前实时汇率,并允许你一键获取最新汇率。
显示货币 EUR 或 USD。影响成本在仪表板和状态栏中的显示方式。

更改后点击 保存设置


5. AI 摘要 (Pro)

同步时,扩展程序可以使用 AI 模型从你最近的 git 提交中生成有意义的时间条目描述。

字段 功能
AI 提供商 Anthropic 或 OpenAI。
模型 从预设中选择(例如 Claude Haiku 4.5)或输入自定义模型 ID。
API 密钥 输入你的密钥并点击 保存密钥。安全存储在 SecretStorage 中——从不写入配置文件。

前提条件


高级:YAML 参考

设置面板写入 ~/.vibes-to-bucks/config.yaml。你可以直接编辑此文件作为替代——面板和 YAML 完全可互换。

完整示例

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

远程规范化

Git remotes 在匹配之前会被规范化。以下所有都解析为 github.com/acme/website

repo 值写为 host/org/repo——无协议,无 .git

查找 Moneybird ID