A sleek, dark-themed React SPA to monitor your Venice AI API balances (USD, DIEM) across multiple API keys with built-in usage analytics.
- Multi-Key Support - Track balances for multiple Venice API keys simultaneously
- Usage Dashboard - Comprehensive analytics showing model usage, costs, and token consumption
- Dual Currency Display - View costs in both DIEM and USD
- Period Selection - Filter usage by Today, Last 7 days, Last 30 days, or Last 90 days
- Wallet & API Key Filtering - Group keys by wallet, filter the dashboard by wallet or individual key
- API Key Breakdown - See per-API-key consumption via the Venice analytics endpoint
- Expandable Model Details - Click a model to see per-wallet cost breakdown and the API keys in each wallet
- Auto-Refresh - Balances update automatically every 5 minutes
- Local Storage - Keys are stored securely in your browser (never sent to any server except Venice API)
- Dark Theme - Easy on the eyes with a modern zinc/emerald color scheme
- Responsive Design - Works on desktop, tablet, and mobile
- PWA Ready - Install on your phone for native app experience
Venice.ai is an AI platform that provides access to various language models. Users have balances in:
- USD - US Dollar balance
- DIEM - Venice's token currency (formerly VCU)
This tracker fetches your balances and usage from the Venice API.
- Node.js 20.19+ / 22.12+ (Vite 7 requirement)
- npm or bun
# Clone the repository
git clone git@github.com:znake/venice.ai-diemtracker.git
cd venice.ai-diemtracker
# Install dependencies
npm install
# Start development server
npm run devOpen http://localhost:5173 in your browser.
npm run build
npm run previewThe built files will be in the dist/ folder.
This app is a static SPA that can be deployed anywhere. Choose your preferred method:
Deploy on any VPS (Hetzner, DigitalOcean, etc.) using Docker:
# Build the image
docker build -t venice-tracker .
# Run the container
docker run -d -p 80:80 venice-trackerOr use Docker Compose:
# docker-compose.yml
services:
venice-tracker:
build: .
ports:
- "80:80"
restart: unless-stoppeddocker compose up -d- Fork this repository
- Go to vercel.com and import your fork
- Vercel auto-detects Vite — just click Deploy
Or via CLI:
npm i -g vercel
vercel- Connect your repo at netlify.com
- Build command:
npm run build - Publish directory:
dist
- Connect your repo in Cloudflare Dashboard
- Build command:
npm run build - Build output directory:
dist
The app works as a Progressive Web App — install it on your smartphone for quick access to your balances:
- Open the deployed app in Safari
- Tap the Share button
- Select "Add to Home Screen"
- Open the deployed app in Chrome
- Tap the menu (⋮)
- Select "Add to Home Screen" or "Install App"
Once installed, the app opens in standalone mode (no browser UI) and feels like a native app. Your API keys stay synced in local storage.
- Click the "+ Add Key" button
- Enter a label (e.g., "Production", "Personal")
- Paste your Venice API key
- Optionally assign a Wallet / Group label to organize keys by account
- Click "Add Key"
- Your USD and DIEM balances are displayed on each card
- Balances refresh automatically every 5 minutes
- Click "Refresh All" to update all keys at once
- Edit: Click the pencil icon to modify label or API key
- Delete: Click the trash icon to remove a key
The Usage Dashboard provides detailed analytics for your API usage:
- Period Selection - Choose between Today, Last 7 days, Last 30 days, or Last 90 days
- Model Breakdown - See exactly which models you're using and how much each costs. Click a model to expand its per-wallet breakdown and see the API keys in each wallet.
- API Key Breakdown - A dedicated table showing per-API-key consumption (fetched from the Venice analytics endpoint), grouped by wallet
- Wallet & Key Filters - Filter the entire dashboard by wallet or individual configured key
- Cost Display - View costs in both DIEM and USD side by side
- Token Tracking - Monitor prompt and completion tokens per model and per API key
- Request Count - Track total number of API requests
- Last Updated - See when data was last refreshed
The dashboard aggregates usage across all your configured API keys. Use wallet labels to group keys by account and quickly filter between them.
The app makes a GET request to https://api.venice.ai/api/v1/api_keys/rate_limits with your API key in the Authorization header. Venice returns your balance information in the JSON response:
{
"data": {
"balances": {
"USD": 50.23,
"DIEM": 100.02
}
}
}- Client-Side Only - This is a static SPA with no backend server
- Local Storage - API keys are stored only in your browser's localStorage
- Direct API Calls - Requests go directly from your browser to Venice API
- No Tracking - No analytics, no cookies, no data collection
Note: Your API keys are stored in plain text in localStorage. Only use this app on trusted devices.
- React 19 - UI framework
- Vite 7 - Build tool
- Tailwind CSS 4 - Styling
- Go to venice.ai
- Create an account or log in
- Navigate to Settings > API Keys
- Generate a new API key
- Copy and paste it into this tracker
Important: Balance information is available with any valid API key. If you see "No balance data in response", the API key may not have the required permissions.
MIT
Contributions are welcome! Feel free to open issues or submit pull requests.