Open Source / Local First / MIT License
Your local command center
for LLM traces.
OpenSmith is to LangSmith what Ollama is to OpenAI. No cloud. No accounts. No Docker. Just Python.
System status
Local engine ready
from opensmith import trace @trace def my_pipeline(prompt): response = llm.call(prompt) return response # Dashboard auto-opens at localhost:7823
downloads / month
latest version
GitHub stars
forks
Core capabilities
Everything you need, nothing you don't.
Zero setup
SQLite by default at ~/.opensmith/traces.db. No config file needed to get started. Add Postgres in one env var when you're ready.
pip install opensmithLive dashboard
Full observability at localhost:7823. Search traces, filter by status or tags, inspect token usage and cost — all local, all yours.
opensmith uiOne decorator
Drop @trace on any function. Sync, async, context manager — all supported. Autopatches OpenAI, Anthropic, and LiteLLM with zero code changes.
@traceGet running
How it works
Install
pip install opensmithAdd the decorator
@traceon any function — that's it.Open the dashboard
opensmith ui→localhost:7823
Automatic instrumentation
Works with the tools you already use.
One line enables automatic tracing across your entire LLM stack.
from opensmith import autopatch autopatch("openai") # patches OpenAI client autopatch("anthropic") # patches Anthropic client autopatch("litellm") # patches LiteLLM autopatch("chromadb") # patches ChromaDB autopatch("qdrant") # patches Qdrant autopatch("pinecone") # patches Pinecone
Scale when ready
Optional integrations
Postgres backend
$ pip install "opensmith[postgres]"# Set env var:OPENSMITH_DB_URL=postgresql://...
Production-grade storage when SQLite isn't enough.
OpenTelemetry export
$ pip install "opensmith[otel]"# Set env var:OPENSMITH_OTEL_ENDPOINT=http://localhost:4318
Export traces to Jaeger, Grafana Tempo, or any OTel backend.
Command line
Full CLI included
$ opensmith ui # start dashboard$ opensmith traces # list recent traces$ opensmith stats # token + cost summary$ opensmith export # export to JSON or CSV$ opensmith clear # clear local traces$ opensmith init # create opensmith.json config