Live token and cost visibility for Backboard apps. Run the server, open the UI, see usage in real time.
Project description
Backboard Usage
Live token and cost visibility for Backboard apps. See usage in real time as your agents run—no need to wait for the billing dashboard.
- PyPI: backboard-usage
- Docs: This README and the Wire format below. For more examples, clone this repo and see the examples folder.
After you install the package
pip install backboard-usage
1. Start the server
In a terminal (leave it running):
backboard-usage-server
You should see: Live usage UI: http://localhost:8766
2. Open the UI
In your browser open: http://localhost:8766
You’ll see the usage dashboard (empty until your app sends data).
3. Add a few lines to your Backboard app
Basic usage (~5 lines):
from backboard_usage import UsageTracker
tracker = UsageTracker()
response = await client.add_message(...)
await tracker.record(response, agent="Idea Analyzer") # repeat per agent
await tracker.finish()
Context manager (finish called automatically):
async with UsageTracker() as tracker:
response = await client.add_message(...)
await tracker.record(response, agent="Agent Name")
Sync apps (Streamlit, etc.):
from backboard_usage import run_with_tracker
async def my_flow(tracker, prompt):
response = await client.add_message(prompt)
await tracker.record(response, agent="Analyzer")
return response
result = run_with_tracker(my_flow)("Hello")
Open http://localhost:8766 to see agents and token usage. If the server isn’t running, the app still runs; a warning is logged.
Optional: To try the UI without writing an app, clone this repo and run:
pip install websockets
python examples/demo_usage.py
(with the server and http://localhost:8766 open). You’ll see a fake run appear in the UI.
Wire format
Your app sends JSON over the WebSocket.
During a run (e.g. after each agent or message):
{
"event": "usage",
"total_tokens": 1234,
"total_cost": 0.0123,
"by_agent": {
"Idea Analyzer": { "tokens": 600, "cost": 0.006 },
"Market Researcher": { "tokens": 634, "cost": 0.0063 }
},
"by_model": {
"openai/gpt-4o": { "tokens": 1234, "cost": 0.0123 }
}
}
When the run finishes:
{
"event": "done",
"total_tokens": 1234,
"total_cost": 0.0123,
"by_agent": { ... },
"by_model": { ... }
}
The UI shows This run, Total (all runs), and Run history.
Example: try the UI without an app
Clone this repo and run examples/demo_usage.py (with the server and http://localhost:8766 open). It sends fake usage so you can see the UI update—no Backboard API key needed. See examples/README.md.
Optional env
| Variable | Default | Description |
|---|---|---|
USAGE_WS_URL |
ws://localhost:8765 |
WebSocket URL for your app. |
Documentation and links
- This README is the main documentation.
- Wire format is above; no separate docs site. For more examples, clone the repo and see the examples folder.
- Backboard: backboard.io · Backboard SDK/docs
- Repository: github.com/sapkota-aayush/BackboardOpenSource
When you push this repo to GitHub, update the repository URL in pyproject.toml (project.urls) and use it as the “Documentation” link (e.g. https://github.com/sapkota-aayush/BackboardOpenSource#readme).
For contributors (development from repo)
git clone https://github.com/sapkota-aayush/BackboardOpenSource.git
cd BackboardOpenSource
pip install -e .
To rebuild the UI and bundle it into the package:
cd usage-ui && npm ci && npm run build && cd ..
# Windows:
Copy-Item -Path usage-ui\dist\* -Destination backboard_usage\ui -Recurse -Force
# macOS/Linux:
cp -r usage-ui/dist/* backboard_usage/ui/
Then run backboard-usage-server or python usage_server.py.
Run tests:
python -m unittest tests.test_backboard_usage -v
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file backboard_usage-0.2.3.tar.gz.
File metadata
- Download URL: backboard_usage-0.2.3.tar.gz
- Upload date:
- Size: 66.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
382280e7f0cb7542ae4032b9ccbf113d55ad343fcfc420dda221937f09649c43
|
|
| MD5 |
f5b1626de69a6c4450b6b1abfa5d5268
|
|
| BLAKE2b-256 |
0ae449e7c7347c3353ea4714e0bd6b64904415770628d561a073938124bafe7a
|
File details
Details for the file backboard_usage-0.2.3-py3-none-any.whl.
File metadata
- Download URL: backboard_usage-0.2.3-py3-none-any.whl
- Upload date:
- Size: 64.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cfb611428fc444c5936832889096b33996116b5db60d0a7c865a4f4e3fb059f
|
|
| MD5 |
620c0cdbcd01ae760fa86cba16bf28e1
|
|
| BLAKE2b-256 |
c2b3f8c777f07558a4e5acbb85e9bf8817b158fa5bc7efa528c336298b09e43b
|