

Spanlens
Spanlens is open-source LLM observability built for application developers. Drop in a one-line proxy or SDK swap and every OpenAI, Anthropic, or Gemini call your app makes is captured with full request and response body, model, tokens, cost, and latency.
Cost / License
- Freemium (Subscription)
- Open Source (MIT)
Platforms
- Software as a Service (SaaS)
- Docker
Features
Spanlens News & Activities
Recent activities
Spanlens information
What is Spanlens?
Spanlens is open-source LLM observability built for application developers. Drop in a one-line proxy or SDK swap and every OpenAI, Anthropic, or Gemini call your app makes is captured with full request and response body, model, tokens, cost, and latency.
Core features:
- Drop-in proxy. Replace api.openai.com with your Spanlens endpoint and every call is logged, no callback handlers or per-chain instrumentation needed.
- Agent tracing with Critical Path. Multi-step agents render as waterfall span trees with the longest dependency chain highlighted automatically.
- Prompt A/B with Welch t-test. Compare prompt variants side by side with real statistical significance on latency, cost, and error rate.
- Model savings recommender. "Swap these gpt-4o classification calls to gpt-4o-mini, $412 a month saved" with the evidence.
- Security built in. PII detection (SSN, credit card, IBAN, passport), prompt-injection patterns, and automatic API key masking before any row is persisted.
- 3-sigma anomaly detection on latency and cost against a rolling 7-day baseline.
- Versioned prompt library with diff, A/B rollout, and playground.
- OpenTelemetry (OTLP/HTTP) ingest for everything else.
Self-host the entire stack with one Docker Compose file. The whole repository is MIT licensed, no enterprise edition folder. Data stays in your infrastructure.
Free tier: 50,000 requests/month, 14-day retention, all core features. Pro from $29/month.
Positioned as a lightweight, developer-first alternative to Helicone (now in maintenance after Mintlify acquisition) and Langfuse (heavy, requires SDK wrapping every call).





