Skip to main content

Kitaru

Traces you can run, not just read.

Kitaru (来る, "to arrive") gives you replay-based evals for AI agents. Record or import production runs as sessions, replay them against your next model, prompt, or code change, and see what improved and what broke before you ship. Open source, self-hosted, Python and TypeScript. From the team behind ZenML.

PyPI Python License

Docs · Guided Tour · Get Started · Roadmap · Community

Watch the 26-minute Kitaru guided tour


🎯 Why

Your agent has already been tested thousands of times in production. Most of that evidence is sitting in a trace store as something you can read but not run. Then you change a prompt, swap a model, or refactor a tool, and the first strong signal comes from a user who found the regression.

Kitaru turns that history into something you can test:

  • Every run becomes a session. Wrap your agent once, or import the traces you already collect from Langfuse, LangSmith, Braintrust, Logfire, or Arize Phoenix. Your trace store stays your system of record.
  • Replay re-executes your code. Your real agent runs again, with tool calls answered from the recording, so no card gets refunded twice. An unchanged replay gives you the faithful baseline; a forked replay shows the effect of one change.
  • Evaluation starts with human judgment. Your coding assistant reviews the sessions that matter, interviews you against the evidence, and pins your answers to exact trace locations. Those judgments calibrate evaluators, cohorts freeze the population, and experiments replay the cohort against your change before it ships.

⚡ Get started

1. Install. Open a terminal in your agent's repository and run one line. It adds Kitaru to that project's environment with uv (the worker that replays your agent has to live next to its dependencies), installs the coding-agent skills, and registers the MCP server with Claude Code, Codex, Cursor, and Windsurf (that part is kitaru setup, re-run it after installing a new editor). It ends by printing the two ways to get a server: kitaru login --local (Docker, free) or kitaru login for the managed cloud (14-day trial, no credit card required).

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

Already in Claude Code, Codex, or Cursor? Open the repository there and 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.

Prefer to do it by hand? Add Kitaru to your project's environment, then choose managed cloud with uv run kitaru login, or provision the local FastAPI + Postgres server with Docker:

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

2. Make your coding assistant Kitaru-capable. This is the intended way to drive Kitaru: skills teach the method, and the MCP server gives your assistant bounded operations. The installer already did this; one command does it again for any coding agent you install later (Claude Code, Codex, Cursor, Windsurf):

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

It installs the skills into ~/.agents/skills (plus each agent's own skills directory) and registers kitaru-mcp with every agent it finds. For any other MCP client it prints the JSON to paste:

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

3. Get an agent with traces. The fastest way to feel the loop is the PydanticAI returns agent: a ready agent with checked-in Langfuse traces.

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

Already have an agent in production? Import its traces from Langfuse, LangSmith, Braintrust, Logfire, or Arize Phoenix, or record with an adapter: one wrapper, no rewrite.

4. Let your assistant drive the loop. Open the example directory in Claude Code, Codex, or Cursor, then take 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.

On your own agent, run the investigation:

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 the sessions with built-in deterministic evaluators, interviews you over the ones that matter, drafts the evaluator, runs the experiment, and reports what improved and what regressed. You judge; it handles the investigation work. The tutorial walks the same loop on the PydanticAI returns agent example, step by step.

🔌 Languages and frameworks

Python and TypeScript SDKs talk to the same server. Adapters ship for:

Framework Language Package
PydanticAI Python kitaru-pydantic-ai
LangGraph (also LangChain agents, Deep Agents) Python kitaru-langgraph
OpenAI Agents SDK Python kitaru-openai-agents
Claude Agent SDK Python kitaru-claude-agent-sdk
Mastra TypeScript @zenml-io/kitaru-mastra
Vercel AI SDK TypeScript @zenml-io/kitaru-vercel-ai

Anything else still works: import your traces, write a one-page custom importer with help from an agent skill, or build a small adapter.

🔒 Self-hosted, by design

One server runs on your infrastructure, with Docker image and Helm chart included, and no user code executes on it. Replays, imports, and evaluations run on workers in your environment: your virtualenv, your credentials, your network. Traces never have to leave your systems. Apache 2.0, no mandatory SaaS control plane.

📚 Learn more

Resource Description
Documentation Concepts, guides, and the quickstart
Quickstart From an agent in production to your first replay-backed decision
Set up your coding agent Install the MCP server and the agent skills
PydanticAI returns agent A ready agent and checked-in traces to try the method on
Import your traces Langfuse, LangSmith, Braintrust, Logfire, Arize Phoenix, or any format
Build a regression suite Replay production traffic against a change and gate it in CI
Deploy Kitaru Self-host for your team

🤝 Contributing

We're happy to take contributions from outside the core team. Comment on an existing issue or open a new one before you write code; direct PRs are limited to collaborators, and a maintainer will add you once we've agreed on the change. CONTRIBUTING.md has the full flow, dev setup, and code style. The default branch is develop; all PRs should target it.

💬 Community and support

Hit something broken? Any of the three reaches a human. An issue with a session ID attached gets fixed fastest.

📄 License

Apache 2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kitaru-0.26.0.tar.gz (5.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kitaru-0.26.0-py3-none-any.whl (3.2 MB view details)

Uploaded Python 3

File details

Details for the file kitaru-0.26.0.tar.gz.

File metadata

  • Download URL: kitaru-0.26.0.tar.gz
  • Upload date:
  • Size: 5.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for kitaru-0.26.0.tar.gz
Algorithm Hash digest
SHA256 c318eecbdbcedcba4de74ea7af3fadd02d3249cde1e67c4cd8d0b60ebf23ba4b
MD5 56e8af0cb806152f4dd189446a2fbc00
BLAKE2b-256 32a99401f99b09dd547b4e49da73a9878f9352eeb69189156fc60ee89aaafdee

See more details on using hashes here.

Provenance

The following attestation bundles were made for kitaru-0.26.0.tar.gz:

Publisher: release.yml on zenml-io/kitaru

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kitaru-0.26.0-py3-none-any.whl.

File metadata

  • Download URL: kitaru-0.26.0-py3-none-any.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for kitaru-0.26.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f2ec03e5bca7a31ccd28f992be31219d162cd8c5dd9da8a2cde2f97c2c5138ce
MD5 50bc63013b96fa59acbc1a597003049a
BLAKE2b-256 1888cad473451da98dcc2e345d6aebe5fa2aa284e1e298551b2b485ec0c43a6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for kitaru-0.26.0-py3-none-any.whl:

Publisher: release.yml on zenml-io/kitaru

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.26.0 This release

2 files

0.25.0

2 files

0.24.0

2 files

0.23.0

2 files

0.22.2

2 files

0.22.1

2 files

0.22.0

2 files

0.21.0

2 files

0.20.2

2 files

0.20.1

2 files

0.20.0

2 files

0.19.0

2 files

0.18.0

2 files

0.17.1

2 files

0.17.0

2 files

0.16.0

2 files

0.15.0

2 files

0.14.0

2 files

0.13.1

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.1

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page