MLOps for teams who work in Clojure
chachaml tracks experiments, models and pipelines from the REPL, a web UI or an LLM agent: a first-party MLOps substrate for teams doing machine learning in Clojure.
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.
Limitations & where this does not 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.
Commercial relevance
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). MLOps for teams who work in Clojure. Flexiana Research. https://flexiana.com/research/chachaml-mlops-for-clojure