Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

miniOPs

Lightweight, polars-native MLOps CLI for training, versioning and deploying models locally, in Docker or on Google Cloud.

CI PyPI License Status Python

Status: pre-alpha. The current release contains only the command line skeleton (miniops --version and miniops version). The features and commands described below are the planned interface and may change.

Why miniOPs?

Most MLOps tooling is either a heavy platform you have to host, or a set of loosely connected libraries you have to glue together yourself. miniOPs aims for the middle ground:

  • One workflow, three targets. The same commands train, register and deploy a model on your machine, in Docker containers, or on GCP.
  • Polars-native. Data enters as a ready-made polars DataFrame (or a Parquet file) and predictions come back as polars. No pandas required.
  • Zero servers by default. A solo user needs nothing but the CLI. Teams can share state through a cloud backend.
  • Opinionated, not magical. You choose the framework and the target explicitly. miniOPs generates the template, installs the dependencies and handles the plumbing. The modelling decisions stay with you.
  • Reproducible by design. Every model gets its own locked environment (uv), and every version records its code, data fingerprint, parameters and dependencies.
  • Runs where you work. Linux, macOS and Windows, on x86_64 and arm64.

What miniOPs is not

miniOPs starts where data engineering ends. It does not ingest, clean, join or transform raw data, and it is not a feature store. It expects a prepared DataFrame and takes over from there: validating the input contract, splitting, training, evaluating, versioning, serving and monitoring.

Planned features

Area Capabilities
Projects & models init, model templates per framework and target, isolated uv environment per model
Data contract schema validation, dataset fingerprinting, split strategies (holdout, k-fold, stratified, time-based)
Training config-driven runs, experiment tracking, hyperparameter tuning (Optuna)
Evaluation task-specific metrics, quality gates, self-contained HTML reports with model cards
Model registry semantic versioning (1.0.0), immutable released versions, aliases (champion, challenger), lineage
Portability export and import of model versions as single files, migrate between targets with lineage preserved
Serving batch prediction (Parquet in/out), generated FastAPI service, Docker images
Deployment deploy, list, stop, delete and roll back deployments on every target
Monitoring input and prediction drift (later)
UI read-only web dashboard (later)

Frameworks

Framework Status
scikit-learn planned (first)
LightGBM planned
PyTorch planned

Targets

Target Training Serving State
local subprocess in the model's venv local FastAPI (uvicorn) SQLite + filesystem
docker container container SQLite + filesystem (mounted)
gcp Vertex AI custom training Cloud Run GCS + miniOPs metadata on GCP

local and docker share the same state, so a model trained locally can be served in Docker right away. Moving a version to GCP (or back) is a single miniops migrate.

A taste of the planned CLI

pip install miniops-ml          # the command is `miniops`

miniops init
miniops new churn --flavor sklearn --target local
miniops train churn --data data/train.parquet
miniops report churn --version 1.0.0          # HTML report
miniops registry release churn --version 1.0.0
miniops deploy churn --version 1.0.0 --target docker
miniops deploy list
miniops registry bump churn --from 1.0.0 --minor   # new draft 1.1.0
miniops migrate churn --version 1.0.0 --to gcp     # copy to the team's GCP store

Roadmap

Phase Content
0 Foundations: design, architecture decisions, project tooling
1 Local target + scikit-learn: train, track, evaluate, register, batch predict, export and import
2 LightGBM
3 Serving + Docker target
4 Hyperparameter tuning and quality gates
5 GCP target and migration between targets
6 PyTorch
7 Monitoring
8 Web UI

Contributing

The project is at an early stage, so the best way to help right now is to open an issue with ideas, use cases or feedback on the design, or start a thread in Discussions. For the development setup and guidelines, see CONTRIBUTING.md.

License

miniOPs is licensed under the Apache License 2.0.

Metadata

Release files for miniops-ml 0.1.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for miniops-ml 0.1.0a1
File Size Uploaded Provenance Actions
miniops_ml-0.1.0a1.tar.gz 9.5 kB With provenance Details for miniops_ml-0.1.0a1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for miniops-ml 0.1.0a1
File Interpreter ABI Platform Actions
miniops_ml-0.1.0a1-py3-none-any.whl Python 3 none any Details for miniops_ml-0.1.0a1-py3-none-any.whl

Total release size: 19.7 kB

Release files / miniops_ml-0.1.0a1.tar.gz

Download URL miniops_ml-0.1.0a1.tar.gz
Size 9.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ba98d7cfa3cc377d9a31d12227e20fa6b1f0eee8fad078decee2e65cc0d0c269
BLAKE2b-256 checksum
How to use checksums
83738f3c3b2562b0325a692f216191e895dc37fa09e7ef91a686f66a4faa16dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / miniops_ml-0.1.0a1-py3-none-any.whl

Download URL miniops_ml-0.1.0a1-py3-none-any.whl
Size 10.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
644e5653345521e77f6574ac160c801a2eb8ff5cc24c0c6a8fe938fe184b21ab
BLAKE2b-256 checksum
How to use checksums
5ce57c8de368a796cb36e625b56af302e70c9570968e63dde9846af95e1a1a4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Security for miniops-ml 0.1.0a1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for miniops_ml-0.1.0a1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page