Get started

Install kalku and measure your first file

One command to install it and one to measure, with nothing to configure and nothing written into your project.

Install

With Homebrew:

brew install lnds/kalku/kalku

It runs on macOS on Apple Silicon and on Linux on x86_64 with GLIBC 2.38 or newer.

The same tarballs are on every release, in case you do not use Homebrew. See the releases →

The first run

From the root of your project, name one file. Start with a single one: the first run over a whole project is long, and teaches nothing one file does not already show.

kalku run lib/thing.ex

Survivors come first and the score comes after:

kalku run
$ kalku run lib/green.ex --limit 6 --verbose
lib/green.ex:4  compare  Green.classify/1
  - >=
  + >
  covered by 4 tests
  No test tells `>=` apart from `>` in
  `Green.classify/1`. Add a case at the boundary
  where the two sides are equal.

score 60% · 3 killed · 2 survived · 1 compile error

the report of a run, as it appears in the README of kalku

What to do next

kalku show <wekufe>
Read one wekufe in full: site, diff, covering tests, hint and history.
kalku cast <wekufe>
Re-cast just that wekufe after writing the test.
kalku run --since origin/main
The gate for your CI: it measures only the lines the change touched.
kalku run lib/thing.ex --format agent
The survivors as compact JSON, for your coding agent.
claude mcp add kalku -- kalku mcp
The tools of kalku as an MCP server, here in Claude Code.

Configuration

None is needed to measure. To keep kalku in a project, with a configuration the team shares, kalku init detects the language and writes .kalku.toml and .kalku/summon.

kalku init

Full documentation

Every subject and every command has its own page.

Read the documentation