Kitaru

Turn production agent traces into runnable evals: replay real sessions against your next model, prompt, or code change before you ship.

Source repo
zenml-io/kitaru
Stars
★ 316
Last updated
1d ago
License
Apache-2.0
Primary language
Python

At a glance

How it runs
CLISelf-hosted serviceMCP server
Works with
Universal · cross-platformCodex · Claude Code
Cost
Free tier plus a paid hosted plan
Setup effort
Medium · a few setup steps
You'll need
uvDocker or Podman (for kitaru login --local)PythonShell / CLINetwork accessLocal filesystemMCP Server
Typical use
Teams already shipping PydanticAI, LangGraph, or OpenAI Agents SDK agents who want to regression-test a model or prompt change against real historical traffic.
Not a fit if
  • Teams that only want to read logs, not re-execute agent code
  • Offline setups that cannot run Docker or Podman and refuse the managed cloud
  • Teams that require vendor-hosted agent execution instead of local workers

What does this agent do, and when should you use it?

Kitaru is an Apache-2.0, self-hosted replay-evaluation system for AI agents from the team behind ZenML, built on the premise that a trace should be runnable, not merely readable. It records or imports production runs — Langfuse, LangSmith, Braintrust, Logfire, Arize Phoenix, MLflow, or a custom importer — as sessions, then replays them by actually re-executing your agent code while tool calls are answered from the recording, so side effects like refunds are not repeated. Evaluation starts from human judgment: a coding assistant reviews the sessions that matter, interviews you against the evidence, pins your answers to exact trace locations, drafts evaluators, freezes cohorts, and runs experiments on your change before release. A single server (FastAPI + Postgres, with Docker image and Helm chart) never executes user code; replays, imports and evaluations run on workers inside your own environment and credentials. Python and TypeScript SDKs share one server, with adapters for PydanticAI, LangGraph, OpenAI Agents SDK, Claude Agent SDK, Mastra and Vercel AI SDK.

Kitaru turns each agent run into a session, either by wrapping the agent once with a record adapter in production or by importing existing traces from Langfuse, LangSmith, Braintrust, Logfire, Arize Phoenix, MLflow, or a documented custom importer. On replay, the real agent code runs again on a local worker while tool calls are answered from the recording: an unchanged replay yields a faithful baseline, and a forked replay isolates the effect of one change. Built-in deterministic evaluators sweep sessions first; a coding assistant then discusses the ones that matter with you, pins your judgments to exact trace locations, and drafts an evaluator calibrated by them. Cohorts freeze the population and experiments replay that cohort against your change, reporting what improved and what regressed. Operation runs through kitaru login (managed cloud or --local, which provisions a FastAPI + Postgres server in Docker or Podman) and kitaru setup (installs skills into ~/.agents/skills and registers kitaru-mcp with Claude Code, Codex, Cursor and Windsurf); other MCP clients connect via a small JSON block.

  1. Teams already shipping PydanticAI, LangGraph, or OpenAI Agents SDK agents who want to regression-test a model or prompt change against real historical traffic.
  2. Teams storing traces in Langfuse, LangSmith, Braintrust, Logfire, Arize Phoenix or MLflow that want those read-only records converted into executable replay cases.
  3. Engineering teams building a regression suite that replays production traffic against a candidate change and gates it in CI.
  4. Developers who want Claude Code, Codex, Cursor or Windsurf to drive the investigation loop instead of hand-writing evaluation scripts.
  5. Maintainers of agents with external side effects, such as ticket refunds, who need tool calls served from the recording rather than executed again.
  6. Organizations with data-residency or compliance constraints that require self-hosting with traces never leaving their systems.

How do you install or deploy this agent?

From a terminal in your agent's repository, run the one-line installer; it adds Kitaru to that project's environment with uv, installs the coding-agent skills, and registers the MCP server with Claude Code, Codex, Cursor and Windsurf:

curl -fsSL https://kitaru.ai/install | bash

If the repository is already open in Claude Code, Codex or Cursor, paste this instead:

Set up Kitaru in this repository by following https://kitaru.ai/install.md. Use the one-line installer and tell me what it did.

To do it by hand, add the package to the project environment, then pick a server:

uv add "kitaru[cli,worker,mcp]" kitaru-pydantic-ai
uv run kitaru login          # managed cloud; 14-day trial, no credit card required
uv run kitaru login --local  # local server in Docker or Podman
uv run kitaru login <your-team-url>

Re-run setup for any editor installed later:

uv run kitaru setup            # or: kitaru setup --mode read-only, --no-skills, --no-mcp

Other MCP clients can paste this configuration:

{
  "mcpServers": {
    "kitaru": {
      "command": "uv",
      "args": ["run", "kitaru-mcp", "--server", "http://localhost:8000", "--mode", "standard"]
    }
  }
}

How do you use this agent?

Start with the bundled example agent, which ships with checked-in Langfuse traces:

git clone https://github.com/zenml-io/kitaru.git
cd kitaru/examples/python/pydantic_ai_ticket_resolver

Open that directory in Claude Code, Codex or Cursor and ask for the guided tour:

Use kitaru-guided-tour to walk me through Kitaru on the PydanticAI returns agent example. I am new; explain each step as we go, and ask before anything paid or live.

For your own agent, run the investigation skill:

Use kitaru-investigation to investigate this agent and help me test one meaningful improvement. Show me the recorded evidence before asking for a judgment, and ask before creating resources or starting paid replay.

The assistant sweeps sessions with built-in deterministic evaluators, interviews you on the ones that matter, drafts the evaluator, runs the experiment, and reports what improved and what regressed; you make the judgment calls. For an existing production agent, record with an adapter or import traces from Langfuse, LangSmith, Braintrust, Logfire, Arize Phoenix or MLflow.

What are this agent's strengths and limitations?

Pros
  • Replay actually re-executes agent code while tool calls come from the recording, giving both a faithful baseline and an isolated fork for one change.
  • Trace sources are open: built-in import from Langfuse, LangSmith, Braintrust, Logfire, Arize Phoenix and MLflow, plus a documented custom importer path.
  • Clean self-hosted boundary: one server with Docker image and Helm chart that never executes user code, while replays run in your virtualenv, credentials and network.
  • Python and TypeScript SDKs share one server, with maintained adapters for PydanticAI, LangGraph, OpenAI Agents SDK, Claude Agent SDK, Mastra and Vercel AI SDK.
  • Skills plus an MCP server let Claude Code, Codex, Cursor and Windsurf drive the investigation and experiment loop rather than you scripting evals by hand.
Limitations
  • The replay worker must live next to your agent's dependencies, so installation is tied to uv and to working inside the agent's own repository environment.
  • The local server requires Docker or Podman; without containers you fall back to the managed cloud, which is paid after a 14-day trial.
  • Replays call real models, so they cost API money and wall-clock time; the README itself instructs assistants to ask before anything paid or live.
  • Evaluators start from human judgment via a coding assistant, so a person must invest time labeling before automation pays off.
  • Reproducible examples and the tutorial are concentrated on the PydanticAI ticket-resolver agent, with less worked material for other adapters.

How does this agent compare with similar options?

The README positions Kitaru against trace stores and observability tools it names — Langfuse, LangSmith, Braintrust, Logfire, Arize Phoenix and MLflow — which hold evidence you can read but not run. Kitaru imports those records and re-executes them, while explicitly keeping your existing trace store as the system of record and offering one-wrapper production recording as an alternative to importing.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Kitaru This agent 56 · Major gaps CLIFreemium ★ 316 1d ago Python Codex · Claude Code
Code Puppy 57 · Major gaps CLIFree + model costs ★ 875 today Python Codex · OpenAI API · Claude API
Synapse AI — Multi-Agent Orchestration Platform 70 · Some gaps CLIFree + model costs ★ 336 1d ago Python OpenAI API · Claude API
Observal — Control Plane & Registry for Internal AI Components 57 · Major gaps Self-hosted serviceFree + model costs ★ 4.5k today Python Codex · Claude Code

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
56/ 100 5-point scale 2.8 / 5
Trust 17/29
Reliability 8/14
Adaptability 10/18
Convention 10/18
Effectiveness 7/13
Verifiability 4/8
Why each dimension lost points
Trust17 / 29 · 2.9/5

README states self-hosting, no user code on the server, replays/imports/evaluations on local workers, bounded MCP operations with a read-only mode, and prompts to ask before paid or live actions — supporting least privilege and user confirmation (2 each). Data-flow transparency is covered by self-hosting and trace-store notes (2). Sensitive-data handling is evidenced by tests asserting redacted export fields and an email allowlist (2). Dependency security has pip-audit CI, lockfiles, a 3-day cooldown, and a documented certifi exception (2). External effects are addressed by mock refunds and replay design (2). Rollback is only conceptual via replay/fork, with no explicit undo or recovery procedure (1). Source attribution is limited to a README mention of the ZenML team; publisher is unverified and no NOTICE/copyright detail is present (1).

Reliability8 / 14 · 2.9/5

pyproject and package.json pin dependencies, CI runs a multi-version matrix, and import-linter enforces layering, giving good internal consistency (2). Dependency availability is supported by uv.lock, pnpm lockfile, and frozen installs (2). Failure messages appear only as a few ValueErrors in the example evaluator; no systematic error-message design is shown (1).

Adaptability10 / 18 · 2.8/5

Audience and scenarios are clear (developers, Python/TypeScript, multiple framework adapters) (2). Capability boundaries are stated: self-hosted, no mandatory SaaS control plane, MCP read-only mode (2). Trigger precision is weak because skills and MCP triggering depend on the external kitaru-skills repo, with little in-repo evidence (1). Environment fit is strong with Docker/Helm and multiple Python/Node versions (2).

Convention10 / 18 · 2.8/5

Information architecture is clear with sectioned README and doc links (2). Install notes are thorough, covering one-line and manual paths (2). Naming stability is deducted for early 0.x status, develop branch, version 0.27.2+dev, and SECURITY listing 0.1.x (1). Examples and FAQ exist via the PydanticAI example and guided tour (2). Known limitations are only scattered mentions of early development, no dedicated section (1). License is the full Apache-2.0 text (3). Versioning/changelog is only a CI changelog-check with no visible CHANGELOG content (1). Maintenance responsibility points to the ZenML team and support email, but the publisher is unverified (1).

Effectiveness7 / 13 · 2.7/5

Output usability is shown by the evaluation result structure and example evaluator (2). Marginal value is clear: replay-based evals for agents (2). Cost-benefit mentions a cloud trial and local Docker but does not quantify costs (1).

Verifiability4 / 8 · 2.5/5

Claim traceability has doc links and tests, but many claims are README assertions without per-claim evidence mapping (1). Cross-source corroboration is good: tests, CI, and pyproject reinforce each other (2). Fact/inference separation is weak because README contains marketing framing without clear distinction (1).

Risks and how to mitigate them
  • Publisher identity is not verified by FollowAgents; maintenance responsibility and update path rely on a README reference to the ZenML team and should be independently confirmed.
  • Version 0.27.2+dev conflicts with SECURITY.md supporting only 0.1.x, and the project is early 0.x, so APIs may be unstable.
  • Skill and MCP triggering depends on the external kitaru-skills repository; in-repo evidence is thin and actual behavior needs separate verification.
  • Rollback and undo procedures are not explicitly documented; replay/fork concepts are not equivalent to a recovery mechanism.
  • This is a static source review with no code or tests executed; confidence is low.
Evidence confidence: Low Reviewed Oct 29, 2026 Reviewed revision 05a08e5cf90c
See the full review method →

FAQ

Does Kitaru replace my existing Langfuse or LangSmith setup?
No. The README keeps your trace store as the system of record; Kitaru imports those traces as sessions for replay and evaluation, or you can record production runs directly through a single wrapper.
Will a replay repeat real-world side effects, like issuing a refund again?
No. Replay re-executes your agent code, but tool calls are answered from the recording — the README uses "no card gets refunded twice" as the example.
Does my code or data run on the vendor's servers?
The server runs on your own infrastructure via the Docker image or Helm chart and executes no user code. Replays, imports and evaluations run on workers in your environment, with your virtualenv, credentials and network.
Do I have to pay to start?
The software is Apache-2.0 and kitaru login --local with Docker or Podman is free. kitaru login to the managed cloud gives a 14-day trial with no credit card; model calls made during replay are billed by your model provider.
Is a coding assistant like Claude Code, Codex or Cursor required?
Not strictly, but the README presents the assistant plus skills and MCP server as the intended way to drive Kitaru. kitaru setup accepts --mode read-only, --no-skills and --no-mcp, and any other MCP client can connect with the provided JSON.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents