pi-agent-budget
v0.1.6
Published
Pi extension: AI coding cost tracker with widget, budget limits, and CNY pricing for Chinese models.
Maintainers
Readme
pi-agent-budget
Pi extension: real-time AI coding cost tracking with budget limits and native CNY pricing for Chinese models.
Track token usage and costs as you chat with AI. A live widget sits below the input box showing your spending, with soft/hard budget limits to prevent surprise bills.
Features
- 👁️ Real-time cost tracking — every assistant message is recorded: tokens × pricing = cost
- 📊 Status bar widget — live display below the editor:
¥0.16 / ¥10.00 ██░░░░(model + cost + budget + progress bar) - 🇨🇳 CNY pricing for Chinese models — deepseek / qwen / glm / kimi / doubao priced in RMB with auto FX conversion (1 USD ≈ 7.2 CNY)
- 🛡️ Soft/hard budget limits — 80% triggers a warning card, 100% blocks further input
- 📈
/budgetdashboard — overview + budget settings + pricing table + config, all in a TUI panel - 📋
/budget report— cost breakdowns by model / tool / session
Install
pi install npm:pi-agent-budgetDepends on
better-sqlite3(native C++ addon). Requires build toolchain on first install: Xcode CLT on macOS (xcode-select --install),build-essentialon Linux.
Commands
/budget # Dashboard (overview / budget / pricing / settings)
/budget set <amount> # Set session budget e.g. /budget set 2
/budget set project <amount> # Set project daily budget
/budget report [range] # Cost report e.g. /budget report week
/budget by <dim> [range] # Slice by model / tool / session
/budget widget # Widget appearance settings
/budget export # Export cost dataConfiguration
Edit via /budget config or ~/.pi/budget.json:
{
"session": { "usd": 2.00 },
"pricingAnchor": "followModel",
"widget": {
"placement": "belowEditor",
"compact": false,
"showModel": true,
"showProgressBar": true,
"showContextWindow": true
}
}| Setting | Description | Default |
|---|---|---|
| session.usd | Session budget in USD | Unlimited |
| pricingAnchor | Currency anchor: followModel / cny / usd | followModel |
| widget.placement | Widget position: belowEditor / aboveEditor | belowEditor |
| widget.compact | Minimal mode (cost only) | false |
| softLimitRatio | Soft limit threshold | 0.8 |
| hardLimitRatio | Hard limit threshold | 1.0 |
Currency handling
followModel(default): Chinese models (deepseek/qwen/glm etc.) display in ¥, Western models display in $cny: Everything in RMB, budget presets use RMB amountsusd: Everything in USD
Chinese models use RMB price tables internally; all costs are stored in USD for consistent cross-model aggregation, with display-time conversion.
Data storage
| File | Purpose |
|---|---|
| ~/.pi/budget.db | SQLite (costs / budgets / alerts) |
| ~/.pi/budget.json | User configuration |
Development
npm run check # TypeScript type check
pi -e ./src/index.ts # Local dev testingLicense
MIT
