Insights from your agent’s traces
Import your traces and see the patterns across every session. Turn what you find into checks, then replay a fix. Open source, on your machine, with your keys.
curl -fsSL https://zenml.io/install-kitaru | bashWatch the launch video, 90 seconds
Install, then let your coding agent do the investigation.
One command on your laptop. One sentence to Claude Code, Codex, or Cursor. The skill finds what repeats in your real runs, fixes it, and shows where you can save cost without losing quality.
$ curl -fsSL https://zenml.io/install-kitaru | bash✓ Kitaru installed. Skills and MCP wired into Claude Code.$ kitaru login --local✓ Local server at http://localhost:8000 # in your agent's repo> Use kitaru-investigation to investigate this agent. Imported 1,824 sessions from Langfuse. 1,791 ready to replay. Read 20. One pattern repeats: the hazmat flag is dropped when the customer mentions batteries. 90 of 1,824.cohort "dropped-hazmat-flag" · 90 sessions · frozen v1 Three opened in the UI. Real bug?> yes Evaluator drafted. Replaying the 90 against your branch pr-311.v1 90 / 90 failpr-311 4 / 90 fail Suggested improvement: same cohort, cheaper model.gpt-5 4 / 90 fail $0.31 per sessiongpt-5-mini 4 / 90 fail $0.09 per sessionsame quality, a third of the costcurl -fsSL https://zenml.io/install-kitaru | bashThen, in your agent's repo, tell your coding agent:Use kitaru-investigation to investigate this agent.
- 1,824sessions imported
- 20 readnot 1,824
- 90 → 4failing after the fix
- 3×cheaper, same quality
Works with your stack
Already have traces? Good. Starting fresh? Also good.
Import what Langfuse, LangSmith and the rest already collected, or wrap your agent in one line and record new runs. Both roads end in the same place: sessions you can review, check and replay.
Have traces? Import them.
$ kitaru session import langfuse-export.jsonl \
--importer kitaru/langfuse@latest \
--agent support-agent@latest \
--tag imported-baseline \
--media-type application/x-ndjson \
--wait
reading langfuse-export.jsonl … 452 traces
converting to sessions … done412 sessions created · 38 skipped · 2 failed
replay readiness ready 361 · partial 44 · unavailable 7
Have an agent? Wrap it.
from kitaru_pydantic_ai import KitaruAgent
from pydantic_ai import Agent
agent = KitaruAgent(Agent(
"openai:gpt-5-mini",
system_prompt="You are a compliance reviewer.",
tools=[search_docs, fetch_policy],
), agent_id=AGENT_ID)
result = await agent.run(task)Agent running on Claude Code, Codex, or the Gemini CLI? Import its session logs today, no adapter needed. For replay, the adapter-builder skill wraps the harness call the same way.
From traces to a tested fix
- 01
Bring your traces
Import from Langfuse, LangSmith, Braintrust, Logfire, MLflow or Phoenix. Or record new runs with an adapter for Claude Agent SDK, OpenAI Agents SDK, PydanticAI, LangGraph, Vercel AI SDK or Mastra.
- 02
Get insights
Analyzers read every session at once and surface the patterns: failed tool calls, repeated calls, how outcomes split.
- 03
Turn findings into checks
Read the sessions behind an insight. What you find becomes a check that runs on every session.
- 04
Replay a fix
When you change something, replay your agent on the sessions that failed. Tool calls come from the recording.
Rather not do the reading?
Our AI engineers read your traces next to your evals, show you what they miss, and keep watching every new trace. They ask you only when a session needs your call. $39 a month.
You already suspect what's wrong.
Now you can check.
Every trace you import becomes a session, a replayable record of one real agent run. Take the ones that went sideways, change the one thing you suspect, and run them again. Two runs, side by side, and you know.
What does good even mean here?
Read twenty of them and write what you notice. Your notes become the cohorts.
Can I believe my own check?
Apply it blind to sessions you never read, then reveal the labels.
Can we ship the cheaper model?
Same cohort, one model swapped. The answer is two runs, compared.
Will it stay fixed?
The same experiment runs on every commit, on the cases that caught it.
Open source
Free to run, yours to keep
Kitaru is Apache 2.0. Install it in one line and run it on your own machine, with your own model keys. No account needed. Our AI engineers are the hosted part on top.
curl -fsSL https://zenml.io/install-kitaru | bash01 Apache 2.0
Read the code, fork it, and run it inside your own product.
02 Runs locally
Sessions, reviews and replays live on your machine until you choose to share them.
03 Your model keys
Replays call the providers you pick, with your keys and your rate limits.
04 Bring your traces
Import from Langfuse, LangSmith, Braintrust, Logfire, MLflow or Phoenix, or wrap your agent in one line.
Bring your evals
Bring the evals you already run
Your LLM judges and tests are code. Wrap them as Kitaru evaluators and run them over the traces you imported.
Evals from
- LLM judges
- pytest
- promptfoo
- DeepEval
- Your own checks
- 01Run them on your historyOne call scores every imported session, so each result sits on the session it judged.
- 02See where they disagreeReview a few sessions. See which judges pass what you would fail, and what no eval checks.
- 03Fix it and replayFix the judge, add the missing check, and replay to test the change.
Frequently asked
questions
Everything you need to know about Kitaru.
What is open source, and what is hosted?
Kitaru is open source (Apache 2.0). You install it with one curl command and it runs on your machine: import, insights, checks and replay. Our AI engineers are the hosted part. They do the reading and ask you questions, for $39 a month on Starter. See pricing.
How is this different from Langfuse, Braintrust or LangSmith?
They show you what happened. Our AI engineers read those traces next to your evals and show you which evals are wrong or missing, then Kitaru replays your agent to test the fix against real sessions. Kitaru imports from Langfuse, LangSmith, Braintrust, Logfire, MLflow or Phoenix, so your tracing tool stays your system of record.
Do I have to change my agent's code?
No. Import traces from Langfuse, LangSmith, Braintrust, Logfire, MLflow or Phoenix and your code stays as it is. To replay, wrap your agent in one line with an adapter for Claude Agent SDK, OpenAI Agents SDK, PydanticAI, LangGraph, Vercel AI SDK or Mastra. For anything else, a Kitaru skill helps your coding agent write an adapter.
Does it work for multi-turn chat agents?
Yes. Importers group a conversation's traces into one session, and review and checks work on the whole conversation. Replay runs one turn at a time with the recorded conversation before it, so you see how your change answers each turn. It can't invent what the user would have said next.
My agent writes to real systems. Is replay safe?
Yes. Replay answers tool calls from the recording, so nothing touches real systems. You can pass a specific tool through live on purpose.
How much of my time does it take?
Very little. Our AI engineers work on their own and ask you only when a session needs your call, a few quick questions at a time. Doing it yourself in Kitaru takes longer; the docs walk through it.
Something's broken. How do I reach you?
Three routes, all reaching a human: the Slack community, kitaru.ai/help (goes straight to GitHub issues), or support@kitaru.ai.
Your traces know
what your evals miss.
curl -fsSL https://zenml.io/install-kitaru | bashOpen source (Apache 2.0) · Runs on your machine
Want it done for you? Our AI engineers read them each week.