tokenspy local-first LLM observability
live disconnected
Total Cost
Total Calls
Total Tokens
Live Updates
Cost per Day (last 7 days)
Cost by Model
Top Functions by Cost
Function Cost Calls Tokens Avg ms
No data yet. Run some LLM calls with tokenspy.init(persist=True).
Name Duration Tags User Status Time
No traces yet. Use tokenspy.trace() to create traces.
Experiments
Name Items Pass rate
No experiments yet. Use tokenspy.experiment().
Datasets
Name Items
No datasets yet. Use tokenspy.dataset().
Prompt Versions
Name Version Preview Status
No prompts yet. Use tokenspy.prompts.push().
Configuration
Dashboard version tokenspy v0.2.0
WebSocket
Quick Start
import tokenspy

# Enable persistence (required for dashboard)
tokenspy.init(persist=True)

# Structured tracing
with tokenspy.trace("pipeline") as t:
    with tokenspy.span("retrieve") as s:
        docs = fetch(query)
        s.update(output=docs)
    t.score("relevance", 0.92)

# Evaluations
ds = tokenspy.dataset("golden")
ds.add(input={"q": "2+2?"}, expected_output="4")

# Prompt versioning
p = tokenspy.prompts.push("my-prompt", "Answer: {{q}}")
compiled = p.compile(q="What is 2+2?")