Auto-track LLM cost, latency, and usage. Two lines of code, every provider.
Project description
LLM Tracer — Python SDK
Track cost, latency, and token usage across OpenAI, Anthropic, and Google Gemini — in one line of code.
Install
pip install llmtracer-sdk
Quick Start
import llmtracer
llmtracer.init(api_key="lt_...")
# That's it. All OpenAI, Anthropic, and Google Gemini calls are now tracked automatically.
No wrappers, no callbacks, no code changes. The SDK auto-patches your provider clients at import time.
View your dashboard at llmtracer.dev.
What Gets Captured
Every LLM call is automatically tracked with:
- Provider, model, tokens (input + output), latency, cost
- Google Gemini: thinking tokens (2.5 models), tool tokens, cached tokens
- Anthropic: cache creation + read tokens
- OpenAI: reasoning tokens (o1/o3/o4), cached tokens
- Caller file, function, and line number
- Auto-flush on process exit (no manual flush needed)
Environment Variable Pattern
import os
import llmtracer
llmtracer.init(
api_key=os.environ["LLMTRACER_API_KEY"],
debug=True, # prints token counts to console
)
Trace Context and Tags
with llmtracer.trace(tags={"feature": "chat", "user_id": "u_sarah"}):
response = client.chat.completions.create(...)
Tags appear in the dashboard's Breakdown page and Top Tags card. Use them to answer questions like "which user costs the most?" or "which feature should I optimize?"
Tagging Patterns
| Pattern | Tag | Example |
|---|---|---|
| Track cost by feature | feature |
"chat", "search", "summarize" |
| Track cost by user | user_id |
"u_sarah", "u_mike" |
| Track cost by customer (B2B) | customer |
"acme-corp", "initech" |
| Track cost by conversation | conversation_id |
"conv_abc123" |
| Track environment | env |
"production", "staging" |
Supported Providers
| Provider | Package | Auto-patched |
|---|---|---|
| OpenAI | openai |
✅ |
| Anthropic | anthropic |
✅ |
| Google Gemini | google-genai |
✅ |
LangChain Support
If you use LangChain with ChatOpenAI, ChatAnthropic, or ChatGoogleGenerativeAI, the underlying SDK calls are auto-captured. No callback handler needed — just llmtracer.init() and you're done.
Debug Mode
Enable debug=True to print token counts to the console:
llmtracer.init(api_key="lt_...", debug=True)
[llmtracer] openai gpt-4o | 1,247 in → 384 out | $0.0094 | 1.2s
[llmtracer] anthropic claude-sonnet-4-5 | 2,100 in → 512 out (cache_read: 1,800) | $0.0031 | 0.8s
[llmtracer] google gemini-2.5-pro | 900 in → 280 out (thinking: 1,420) | $0.0067 | 2.1s
Requirements
- Python 3.8+
- Works with any version of
openai,anthropic, orgoogle-genaiSDKs
Zero Dependencies
The core SDK uses only Python stdlib (urllib.request, threading, hashlib).
License
MIT
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 llmtracer_sdk-2.3.1.tar.gz.
File metadata
- Download URL: llmtracer_sdk-2.3.1.tar.gz
- Upload date:
- Size: 31.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c941025a272decaaa4a67c1e6546ef79847f4ec0a9615bdbb9b2d3b5b2a1e51c
|
|
| MD5 |
0ac44f69fe5ad1437eda560bb0f1c7a2
|
|
| BLAKE2b-256 |
16b8600b7aa68e753f54c3a46db48042759e786e2abc24f17a93bb373e64cdee
|
File details
Details for the file llmtracer_sdk-2.3.1-py3-none-any.whl.
File metadata
- Download URL: llmtracer_sdk-2.3.1-py3-none-any.whl
- Upload date:
- Size: 19.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39ca87d9d4e72a90981267ef7528b4f394669c7519d0eb0a6d90b488837c474b
|
|
| MD5 |
79e7d53f4b441f2ddd8d4cf9b80815f7
|
|
| BLAKE2b-256 |
b97e8149629a9af34dd1b33754445ec1ebd6f12f3a34c5dcb08e10a41d24cbe6
|