Skip to content
In production code practitioner

chachaml, our open-source MLOps tool for Clojure teams

If your machine learning runs in Clojure, chachaml keeps track of experiments, models and pipelines, so you can compare and repeat results. Use it from the REPL, a web page or an AI agent. We run our own ML work on it.

Jiri Knesl · Internal reviewer: Flexiana · 10 July 2026
Read Limitations Reproduce AI & machine learningClojure & data-oriented systems

Most MLOps tooling assumes Python. If your machine-learning work lives in Clojure — because the surrounding decision system does, you either bolt on MLflow through a foreign-function bridge or you go without experiment tracking, a model registry and reproducibility. Both are bad.

chachaml is our answer: a REPL-first MLOps library that feels like Clojure — plain maps, dynamic vars, no ceremony. It tracks experiment runs, stores artefacts, manages a model registry with stage promotion, chains tracked pipelines, fires threshold alerts, and ships a web UI with run dashboards and metric charts. It also exposes its store over an MCP server, so an LLM agent can query experiments, and a “chat with your data” interface backed by a model of your choice.

Why it exists

We build decision systems, and many of them have a learned component. A model that cannot be tracked, compared and reproduced is not a system you can operate, it is a demo. chachaml is the substrate that turns the former into the latter without dragging a Clojure team into a Python-shaped workflow.

Status

chachaml is open source under the MIT licence and has shipped v0.7.0, published to cljdoc, with a Docker-compose deployment and a downstream consumer driving its feedback. It is the operations layer beneath our own ML work, and it is available for anyone doing machine learning on the JVM.

Scope

It is a tracking and operations layer, not a modelling framework, it will not train your model, and its Python interop leans on libpython-clj2. If your stack is Python-only, MLflow is the more natural home. If your ML lives in Clojure, this is the tool we wished existed, so we built it.

Where this doesn't apply

chachaml is a tracking and operations layer, not a modelling framework, it does not train models for you, and its sklearn interop depends on libpython-clj2. It is Clojure-native by design; teams standardised on Python-only stacks will find MLflow a more natural fit.

What it means for a business

Where a client's ML work lives in Clojure or a data-oriented JVM stack, chachaml gives experiment tracking, a model registry and reproducibility without leaving the language. That is the difference between an ML prototype and an operable system.

Reproduce

Cite this

Jiri Knesl (2026). chachaml, our open-source MLOps tool for Clojure teams. Flexiana Research. https://flexiana.com/research/chachaml-mlops-for-clojure

Make this decision every week? Let's talk

If your business makes this decision again and again, talk to Jiri or Ivo. The first call costs nothing.