All posts
TUTORIAL4 min read

Migrate from Langfuse to Currai in one line

The Currai team, EngineeringMay 1, 2026

The most expensive part of any observability migration is re-instrumenting your code. Currai is designed to skip that step entirely: it speaks the Langfuse SDK wire format, so the code you already wrote keeps working when you point it at a new host.

The one line that changes

If you're on the Langfuse Python or TypeScript SDK today, the migration is the host argument. Nothing else moves.

from langfuse import Langfuse

client = Langfuse(
    public_key="pk-lf-...",
    secret_key="sk-lf-...",
    host="https://currai.app",  # only this line changes
)

Your trace, span, and generation calls, your scores, your tags — all of it flows to Currai unchanged, because the SDK is sending the same payloads it always did.

Why "byte-compatible" matters

Plenty of tools claim compatibility and then quietly require a different SDK, a shim, or a re-write of your span tree. Byte-compatible means the literal HTTP requests your existing client sends are the requests Currai ingests. There's no adapter to install and no semantic drift between what you instrumented and what shows up.

Bring your existing trace history's shape

Because the model is the same — traces, observations, scores — your dashboards and mental model carry over too. The session you grouped by session_id still groups. The cost you computed from usage still computes. You're not learning a new product; you're changing where the data lands.

After the cutover

Once you're on Currai, the new capabilities are additive: processed-bytes billing so big and small traces cost what they are, plan-based retention, and hosted storage so there's no ClickHouse to babysit. But none of that requires touching your instrumentation again. You changed one line; everything else you already built keeps paying off.