home / kama

Kama — the kiln

Keru's package manager, deliberately small.

窯

Kama (窯, "kiln") is Keru's package manager. It's a pure-shell script of roughly 225 lines that builds every package from source by running the commands in a recipe. It holds no opinions — matching the distro that ships it. It reads a make.conf, runs recipe commands, and gets out of the way.

no dbNo package database

Kama doesn't track installed files in a manifest db. It stages, installs, and moves on.

no resolverNo dependency resolver

Dependencies come from the recipe's deps[] array — explicit, not discovered.

shellPure shell

The whole manager is a script. Legible end to end; every decision is something you can read.

stageStaging installs

Builds into a per-package stage dir, then copies into $ROOT — never smears the live tree.

tmp depsEphemeral build deps

Build-time-only dependencies are fetched, built, installed, and purged after use — they never accumulate.

$ROOTBuilds anywhere

Targets $ROOT, so it can assemble a full system in a staging root — exactly what the installer needs.

The philosophy in the manager

Kama embodies Keru's central bet: package managers became more complex than the packages they manage. A resolver, a database, a binary format, a compiled daemon — none of that is needed to honestly manage a source-built system. What's needed is a script that faithfully runs what a recipe says, so the user can read any decision it makes.

"A package manager doesn't need a resolver to be honest. It needs to be legible — you can read every decision it makes, because every decision is a script or a line in make.conf you can see and change."

Where it lives

Kama lives in its own repo, alongside the recipe repository — two small pieces that Keru's installer drives together.

Kama is the thing that makes "from scratch" real. It's the kiln that fires your system from the ingredients you pick.

How to use Kama · How recipes work · The repo split