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.
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