Skip to main content

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.

version

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, or google-genai SDKs

Zero Dependencies

The core SDK uses only Python stdlib (urllib.request, threading, hashlib).

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

llmtracer_sdk-2.3.1.tar.gz (31.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llmtracer_sdk-2.3.1-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

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

Hashes for llmtracer_sdk-2.3.1.tar.gz
Algorithm Hash digest
SHA256 c941025a272decaaa4a67c1e6546ef79847f4ec0a9615bdbb9b2d3b5b2a1e51c
MD5 0ac44f69fe5ad1437eda560bb0f1c7a2
BLAKE2b-256 16b8600b7aa68e753f54c3a46db48042759e786e2abc24f17a93bb373e64cdee

See more details on using hashes here.

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

Hashes for llmtracer_sdk-2.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 39ca87d9d4e72a90981267ef7528b4f394669c7519d0eb0a6d90b488837c474b
MD5 79e7d53f4b441f2ddd8d4cf9b80815f7
BLAKE2b-256 b97e8149629a9af34dd1b33754445ec1ebd6f12f3a34c5dcb08e10a41d24cbe6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page