Zero-config OpenAI API cost tracking - just one import and you're done!
Project description
AI Cost Tracker
Zero-config OpenAI API cost tracking - just one import and you're done!
Track all your OpenAI API usage automatically without modifying your existing code. Supports GPT-4, GPT-3.5, DALL-E, Sora, and more.
✨ Features
- ✅ Zero Configuration - Just one import line
- ✅ Automatic Tracking - No code changes needed
- ✅ Multi-Language Support - Python, Node.js, React, Vue, and more!
- ✅ Multi-Key Support - Track multiple API keys separately
- ✅ Real-time Costs - See costs as they happen
- ✅ SQLite Database - All data stored locally and securely
- ✅ CLI Tools - Easy-to-use command-line interface
- ✅ Easy Email Setup - Interactive wizard with SendGrid/Mailgun support (no passwords!)
- ✅ Daily Reports - Optional email summaries
🚀 Quick Start (2 Steps)
Step 1: Install
pip install ai-cost-tracker
Step 2: Add ONE Line
In your main Python file (the one that runs first):
import openai_cost_tracker.services.zero_config_tracker
That's it! All your OpenAI calls are now automatically tracked.
# Your existing code works as-is - no changes needed!
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Hello"}]
)
# This call is automatically tracked! ✨
📊 View Your Costs
# View cost summary
openai-cost-view
# View last 7 days
openai-cost-view --days 7
# View by service
openai-cost-view --service my_service
# Export to JSON
openai-cost-view --export costs.json
📝 Examples
Flask App
# app.py
from flask import Flask
import openai_cost_tracker.services.zero_config_tracker # Add this line
app = Flask(__name__)
from openai import OpenAI
client = OpenAI()
@app.route('/chat')
def chat():
# Automatically tracked!
response = client.chat.completions.create(...)
return response
FastAPI App
# main.py
from fastapi import FastAPI
import openai_cost_tracker.services.zero_config_tracker # Add this line
app = FastAPI()
from openai import OpenAI
client = OpenAI()
@app.post("/chat")
async def chat():
# Automatically tracked!
response = await client.chat.completions.create(...)
return response
Python Script
# my_script.py
import openai_cost_tracker.services.zero_config_tracker # Add this line
from openai import OpenAI
client = OpenAI()
# All calls automatically tracked!
response = client.chat.completions.create(...)
🔧 Advanced Usage
Manual Tracking (Optional)
If you prefer manual tracking:
from openai_cost_tracker import get_tracker
from openai import OpenAI
client = OpenAI()
tracker = get_tracker()
response = client.chat.completions.create(...)
usage = response.usage
tracker.log_api_call(
api_key=os.getenv("OPENAI_API_KEY"),
api_type="chat",
model="gpt-4",
operation="create",
cost=tracker.calculate_chat_cost(
model="gpt-4",
tokens_input=usage.prompt_tokens,
tokens_output=usage.completion_tokens
),
tokens_input=usage.prompt_tokens,
tokens_output=usage.completion_tokens
)
Scan Your Codebase
Find all OpenAI usage in your project:
openai-cost-scan
# Scan specific directory
openai-cost-scan --scan-root /path/to/project
Daily Email Reports (Easy Setup!)
Set up daily email summaries with our interactive wizard:
# Install email support
pip install "ai-cost-tracker[email]"
# Run the interactive email configuration wizard
openai-cost-config-email
The wizard supports:
- SendGrid (Recommended - No password needed! Just API key)
- Mailgun (No password needed! Just API key + domain)
- Gmail/Outlook (With helpful step-by-step instructions)
Then start the monitor:
openai-cost-monitor
That's it! You'll receive daily cost reports automatically.
🌍 Multi-Language Support
Python
import openai_cost_tracker.services.zero_config_tracker # That's it!
Node.js / Express
npm install ai-cost-tracker
const { getTracker } = require('ai-cost-tracker');
const tracker = getTracker();
await tracker.trackOpenAI(response, 'gpt-4', apiKey);
React / Next.js
npm install ai-cost-tracker
import { useCostTracker, CostSummary } from 'ai-cost-tracker/react';
function App() {
const { trackOpenAI } = useCostTracker();
return <CostSummary days={7} />;
}
Other Languages
See EXAMPLES.md for Ruby, PHP, Go, Vue.js, and more!
📦 What Gets Tracked
- Chat Completions (GPT-4, GPT-3.5, etc.)
- Image Generation (DALL-E 2, DALL-E 3)
- Video Generation (Sora)
- Embeddings
- API Keys (hashed for privacy)
- Service Names (auto-detected)
- Tokens (input/output)
- Costs (calculated automatically)
💾 Data Storage
All data is stored locally in SQLite:
- Default location:
~/.openai_cost_tracker/openai_usage.db - Custom location: Set via
CostTracker(db_path="/custom/path")
🔍 CLI Commands
openai-cost-view
View cost summaries and usage statistics.
openai-cost-view [--days N] [--service NAME] [--api-key HASH] [--recent N] [--json] [--export FILE]
openai-cost-scan
Scan codebase for OpenAI usage.
openai-cost-scan [--scan-root PATH] [--output FILE]
openai-cost-monitor
Run monitoring service with email reports.
openai-cost-monitor [--config PATH] [--db-path PATH] [--no-scan]
🎯 Pricing Support
Automatically calculates costs based on current OpenAI pricing:
- GPT-4: $30/$60 per 1M tokens (input/output)
- GPT-4o: $2.50/$10 per 1M tokens
- GPT-3.5-turbo: $0.50/$1.50 per 1M tokens
- DALL-E 3: $0.04-0.08/image
- Sora 2: $0.015/second
🛠️ Configuration
Environment Variables
Optional environment variables:
# Enable verbose output
export OPENAI_COST_TRACKER_VERBOSE=1
# Custom database location
export COST_TRACKER_DB=/path/to/openai_usage.db
📚 API Reference
CostTracker
from openai_cost_tracker import CostTracker, get_tracker
tracker = get_tracker() # Get global tracker
# or
tracker = CostTracker(db_path="/custom/path") # Custom tracker
# Calculate costs
cost = tracker.calculate_chat_cost("gpt-4", tokens_input=1000, tokens_output=500)
image_cost = tracker.calculate_image_cost("dall-e-3", size="1024x1024")
video_cost = tracker.calculate_video_cost("sora-2", seconds=8)
# Get summary
summary = tracker.get_usage_summary(days=7)
🤝 Contributing
Contributions welcome! Please see our contributing guidelines.
📄 License
MIT License - see LICENSE file
📚 Documentation
- Setup Guide - Complete setup instructions for all languages
- Examples - Code examples for Python, Node.js, React, Vue, Ruby, PHP, Go
- JavaScript SDK - Full documentation for npm package
🙏 Support
- Issues: GitHub Issues
- Documentation: See docs in repository
- PyPI: https://pypi.org/project/ai-cost-tracker/
- npm: Coming soon!
📦 Installation
pip install ai-cost-tracker
🎉 Status
✅ Published to PyPI: https://pypi.org/project/ai-cost-tracker/0.1.0/
Made with ❤️ for developers who want to track their AI costs without the hassle.
Project details
Release history Release notifications | RSS feed
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 ai_cost_tracker-0.2.0.tar.gz.
File metadata
- Download URL: ai_cost_tracker-0.2.0.tar.gz
- Upload date:
- Size: 113.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d54f9ccdd37b6da1b1b1329c8ca9646a14f2967a1faa7dee0d77524deaf4369
|
|
| MD5 |
fcb798af9e6d6ae8bba69367be45b430
|
|
| BLAKE2b-256 |
98040f7bee9f9c79c80d206c1f6fb5154d0cba16a84699f533a71b1a8ce367c2
|
File details
Details for the file ai_cost_tracker-0.2.0-py3-none-any.whl.
File metadata
- Download URL: ai_cost_tracker-0.2.0-py3-none-any.whl
- Upload date:
- Size: 41.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f68e009357157b7637bbdd2908fcf62b9e150bbff0a865c06b3b9ca04f8835eb
|
|
| MD5 |
642f0fdbc19dfd4821eb106da977c617
|
|
| BLAKE2b-256 |
33acdcdd0af32478228560ea86b2bf1adc785d84c019209ab0429f73a3bf56e3
|