Kairn v0.1 alpha
Local-first · Open source · No telemetry

Every step your AI took,
stacked on the trail.

Kairn is a graphical control plane for Claude Code. Watch every run unfold in real time, search history, edit subagents and pipelines, and share a clean view of the work with your team or client. Runs on your machine. Never the cloud.

MIT licensed Pure Go binary macOS · Linux · Windows
~/your-project
$ curl -fsSL kairn.in/install.sh | sh
Live timeline preview refactor-auth
Quick start

Two commands. One project at a time.

No accounts. No API keys. No background services. Open a project, run two commands, see what your AI is doing.

1 Install

One-liner. Detects your OS and arch.

$ curl -fsSL https://kairn.in/install.sh | sh
2 Init

In your project. Idempotent.

$ cd ~/path/to/project
$ kairn init
3 Run

Daemon starts, browser opens. Events stream live.

$ kairn
→ http://127.0.0.1:3737
Homebrew (macOS / Linux)
brew install ramyalakhani2108/tap/kairn
Go install
go install gitlab.com/ramyalakhani2108/kairn/cmd/kairn@latest
From source
git clone …/kairn && cd kairn && just build
What it does

A real GUI for the AI in your terminal.

Claude Code is powerful but invisible. Kairn makes it visible — and gives you a place to compose what it should do next.

Live timeline

Every hook event streams in real-time with per-tool icons, file paths, durations, and an inline side-by-side diff for Edit / Write.

Searchable run history

SQLite FTS5 across every event payload. Find "the run where I edited auth.go" three weeks later in under 500ms.

Form-based authoring

Edit subagents, slash commands, MCP servers, and hooks through structured forms. Stop hand-editing brittle JSON.

Visual pipelines

Compose subagents and human-approval gates in a graph editor. Compiles to a slash command Claude Code runs natively.

Share view for clients

Generate a self-contained HTML export of any run — prompt, files touched, key diffs, redacted secrets. Send the artifact, prove the work.

Local-first by design

Binds to 127.0.0.1 only. Never makes outbound calls. Zero telemetry. Your runs, your machine, your data.

How it works

Hooks in. SQLite out. WebSocket up.

Kairn doesn't intercept Claude Code or replace it. It rides alongside.

  1. 01

    Claude Code fires a hook for every action it takes.

    When you run a prompt, Claude Code calls a shell stub Kairn installed in .claude/settings.json. The stub POSTs the payload to the local daemon on 127.0.0.1:3737. The hook is non-blocking — if Kairn isn't running, Claude Code keeps working.

  2. 02

    The Go daemon normalizes the event and stores it.

    Events land in a SQLite database (WAL mode, FTS5 index) at .kairn/runs.db. Pure Go, no CGO — same binary works on Mac, Linux, Windows.

  3. 03

    A WebSocket pushes the event to your browser.

    The React UI subscribes to /ws and renders the event as a typed card — file paths, diffs, terminal commands, todo lists. Sub-200ms from hook to pixel.

Built for

Anyone who's lost a Claude Code session to scrollback.

🧑‍💻

Solo developers

Faster authoring. Better visibility on long agent runs. Find work from three weeks ago in seconds.

🎯

Freelancers & agencies

Curated share views prove value to clients. Reusable pipelines across projects. Branded HTML exports.

🏢

In-house engineers

Team-wide shared agent + pipeline definitions, version-controlled in git. Audit trail for review.

📊

Tech leads

See how your team uses AI assistance without reading terminal logs over their shoulder.

Things to know

Common questions.

Does Kairn use my Anthropic API key?

No. Kairn never calls the Anthropic API. All LLM work flows through your existing Claude Code installation and subscription. Kairn only observes Claude Code through hooks and edits configuration files.

Is Kairn telemetry-free?

Yes. The daemon binds exclusively to 127.0.0.1 and makes no outbound network calls. There is no analytics, error reporting, or telemetry — not opt-in, not configurable.

Can I manage multiple projects?

Yes, by running multiple instances on different ports: kairn --port 3738. Kairn intentionally attaches to one project at a time.

What about hook event secrets?

Hook payloads may contain secrets. They're stored in plaintext SQLite by default. Kairn ships with a redaction config to scrub sensitive paths; share-view export omits raw payloads unless you opt in.

Is this affiliated with Anthropic?

No. Kairn is an independent open-source project. It's not endorsed by, sponsored by, or affiliated with Anthropic.

Community

Stack a stone of your own.

Kairn is open source, MIT-licensed, and shaped by the people who use it. Star the repo, file an issue, or open a merge request.

Stay in the loop

Get an email when v0.1 ships and when new features land. No fluff. Unsubscribe in one click.

Powered by Buttondown. Three to five emails a year, max.