Get started
On this page
This page gets you from nothing to a running session and names the things a kli session does differently from other agents. It assumes you are comfortable in a terminal and with git.
Install and run
curl -fsSL https://kli.kleisli.io | sh
The installer drops a prebuilt binary under ~/.local and a kli on your PATH
(Linux x86_64 and aarch64, macOS aarch64). On an Intel Mac, or for the Nix and
from-source paths, see Installation.
kli reads an Anthropic key from ANTHROPIC_API_KEY; export it and the bundled
Anthropic provider is live. Other providers, OAuth, and credential files are in
Connect a provider.
export ANTHROPIC_API_KEY=sk-ant-...
cd path/to/your/repo
kli
Choose a model with /model, then type a request naming a file.
What a kli session does differently
- It is fully permissioned by default. There is no approval prompt. A tool call —
bash, a file write,
eval— runs the moment the model emits it, with the privileges of the kli process. Decide your confinement before you point it at anything you care about: Restrict what kli can do and the security model. - A diff card is a change already on disk. kli does not stage an edit for you to accept; the card is the receipt for a write that already happened. Keep it by doing nothing, drop it with git. Edits are anchored to line-and-content hashes, so a patch against a file that has drifted is rejected, not misapplied.
- The session is a live image you can rewrite. Behavior is CLOS cells over pandoric
closures, so you can hot-patch the running agent from
/evalwithout dropping the session — see The live image.
Next
- Teach kli your project — an
AGENTS.mdkli reads at startup so it stops guessing your conventions. - Concepts — the agent loop, sessions as a tree, the live image, and how authority is decided.
- Extend kli — everything above the kernel is an extension, and this is the part you will live in.