Make your AI agents self-healing
Agents that fix themselves, at scale.
Website · Docs · Changelog · Slack · X
🌈 Why Latitude?
Latitude finds where your agent fails and gets it fixed.
- Observe: one line of telemetry captures every trace: multi-turn sessions, tool calls, and full execution paths. (traces, sessions, tool-call observability, OpenTelemetry ingest)
- Understand: failing traces are auto-grouped into tracked signals with status, size, and trend, so you see what's breaking and how often. (signals, flaggers, behaviours, semantic search, annotations)
- Fix: Latitude dispatches your coding agents (Claude Code, Cursor) with the full context, sample traces, and a deep link. It writes the smallest correct fix and opens a PR. (Agent Dispatch, MCP server, Linear & webhook dispatch)
- Verify: fixes are replayed against the real failing traces, so fixed failures don't come back. (regression datasets, monitors, alerts)
Everything you can do in the UI is also available from your coding agent via the MCP server and the CLI.
📚 Table of contents
- Quick start
- Integrations
- With Claude Code
- Development
- Self-host
- Community
- Contributing
- License
- Links
⚡ Quick start
You can use Latitude for free, including 20K credits/month, 30-day data retention, and unlimited seats.
Sign up at latitude.so and grab your API key and project slug.
Recommended: ask your coding agent
Paste this prompt into Claude Code, Cursor, Windsurf, Codex, OpenCode, or another coding agent:
Install the `latitude-setup` skill from `github.com/latitude-dev/skills`, and use it to add Latitude tracing to this app following best practices.
Manual TypeScript setup
npm install @latitude-data/telemetry
This example uses OpenAI; replace it with the LLM SDK your app already imports.
import { Latitude } from "@latitude-data/telemetry"; import OpenAI from "openai"; const latitude = new Latitude({ apiKey: process.env.LATITUDE_API_KEY!, project: process.env.LATITUDE_PROJECT_SLUG!, instrumentations: { openai: OpenAI }, }); const client = new OpenAI(); await client.chat.completions.create({ model: "gpt-4o", messages: [{ role: "user", content: "Hello" }], }); await latitude.shutdown();
Every supported LLM call now shows up as a trace in Latitude. Use capture() at request, conversation, or agent boundaries when you want to add user IDs, session IDs, tags, or metadata.
Python and any OpenTelemetry-compatible runtime are also supported. Full setup, provider guides, and OTel passthrough are in the Start tracing guide.
🔌 Integrations
Latitude is provider-agnostic. Telemetry works out of the box with most model providers and frameworks (OpenAI, Anthropic, Bedrock, Vercel AI SDK, LangChain, and more), plus any OTEL-compatible application.
See the full integration list for setup instructions.
✳️ With Claude Code
Building inside Claude Code? We have a dedicated package that captures full session transcripts as traces. Check out docs.
npx -y @latitude-data/claude-code-telemetry install
Works in the terminal, the Desktop app, and IDE extensions.
🛠️ Development
Check out the Development setup and the Contributing guide to get started contributing to Latitude.
🏠 Self-host
Latitude is self-hostable at any scale, on fully open infrastructure. Pull the ready-to-go container images on Docker Hub:
- Single-host (simple) — a production-grade instance on one machine with Docker Compose, follow the Single-host guide.
- Cluster (advanced) — a scalable, highly-available deployment on Kubernetes via a Helm chart, follow the Cluster guide.
- One-click (Railway) — the whole stack on managed infrastructure, easy deploy through Railway.
👥 Community
Join the Slack community to ask questions, share feedback, and show what you're building.
📄 License
Latitude is licensed under the MIT License.
🤝 Contributing
Contributions are welcome. Read the Contributing Guide to get started, then join the Slack community, open an issue, or submit a pull request.
New to the project? Good first issues are a friendly place to start.
🧑💻 Thanks to all of our contributors
🔗 Links
Made with love by the Latitude Team
