Skip to content

About

pi inspired coding agent written in Clojure

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Repository files navigation

kmet

A minimal coding agent built in Clojure, with a terminal user interface, streaming LLM conversations, and a local tool loop.

Inspired by pi, kmet runs on Linux, macOS, Windows, WSL, and Termux from one source tree on three hosts: Babashka (the primary runtime), native Jolt builds, and the JVM (JDK 22+ enables the native clipboard backend; older JDKs still run the app).

Highlights

  • Interactive terminal UI with differential rendering, overlays, and a multi-line editor.
  • Built-in read, write, edit, bash, and run_code tools — the last runs sandboxed Clojure scripts that return only the output they emit.
  • Headless RPC mode over EDN stdin/stdout for editors and scripts.
  • Provider, authentication, model-catalog, OAuth, and custom-model support.
  • Local extensions, skills, prompt templates, themes, and packages (local or git).
  • EDNL sessions with branching, compaction, import/export, and sharing.
  • Cross-platform source runs on Babashka, Jolt, and the JVM, plus self-contained executables.

Quick start

Install Babashka 1.13.225 or newer, then run kmet from a checkout:

git clone https://github.com/kmetia/kmet-agent.git
cd kmet-agent
export OPENCODE_API_KEY='your-api-key'
bb start

List available models or run a one-shot request with:

bb start --list-models
bb start --print "summarize the project"

The same checkout runs on the optional hosts: jolt start on Jolt and bb start-jvm on JVM Clojure, which needs the Clojure CLI (and Java 22+ for the clipboard's native backend). Each host carries its own test and packaging tasks (bb test-jvm, bb dist-jvm).

Self-contained release binaries skip the Babashka install: download the zip for your platform from GitHub Releases — releases ship kmet-<version>-<platform>.zip (currently v0.1.3), with <platform> one of linux-amd64, linux-aarch64, macos-amd64, macos-aarch64, and windows-amd64. Unzip it and run the executable inside the extracted folder:

unzip kmet-0.1.3-linux-amd64.zip
./kmet-0.1.3-linux-amd64/kmet --list-models

On Windows run kmet.exe; on Termux run the bundled kmet.sh launcher. The other hosts follow the same scheme with their own prefix and command: jolt's kmetj-<version>-<platform>-<link>.zip (<link> is static or dynamic) runs as kmetj, and the JVM's kmetc-<version>-jvm.zip ships an uberjar with launchers, needs a Java runtime, and runs as kmetc, so all three can be installed side by side and invoked by different names.

See Getting started for provider setup, sessions, and installation details.

Documentation

Start with the user documentation:

The name

kmet (Cyrillic кмет) is an old Slavic word with two complementary meanings: a community leader and a land-bound worker. The name captures the agent's posture—acting with authority on your behalf while staying responsible to the code and people who own it. The longer etymology is in About kmet.

Project layout

modules/        — application modules and libraries (agent, ai, libs, tui,
                  loader, tk, reakt, hikap); each is a standalone classpath root
extensions/     — opt-in shipped extensions
jolt/           — Jolt provider scaffolding
docs/           — user-facing documentation
test/           — test suites
tasks/          — development and packaging tasks
scripts/        — repo tooling (git hooks, repros)

Implementation and development references are kept close to their packages; start with modules/agent/src/kmet/README.md for contributor information.

License

Copyright © 2026 — present Marko Kocic marko@euptera.com

Licensed under the Eclipse Public License 2.0 (EPL-2.0).

About

pi inspired coding agent written in Clojure

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages