Skip to main content

Moro

MoroAI is a local-first CLI for adapting open language models to private data.

Turn private data into reliable local models: import → clean → choose a recipe → train → evaluate → deploy.

Moro is for engineers and small teams building private support assistants, domain Q&A, and structured extraction workflows. The current focus is a repeatable local workflow on consumer hardware.

Status

Early development. The core CLI, dataset workflow, recipe heuristics, and training dry-run have automated coverage without downloading models. A real offline CPU smoke test validates one-step LoRA training, validation loss, checkpoint creation, and adapter reload for generation. Training, model-backed evaluation, and deployment integrations remain experimental and have not yet been validated end to end on a GPU. This is not a production release.

Install from source

Python 3.10 or newer:

git clone git@github.com:MoroAI/moro.git
cd moro
python -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'

Use the source checkout for now; package publication is not part of this setup.

Try the local workflow

From the repository root:

moro init /tmp/moro-demo
cp examples/support.jsonl /tmp/moro-demo/data/raw/support.jsonl
cd /tmp/moro-demo
moro import data/raw/support.jsonl --name support
moro data build
moro data report
moro status
moro doctor
moro recipe suggest
moro train --dry-run

The sample data is synthetic and only demonstrates the workflow. Dry-run validates the normalized training rows and prints a rough memory estimate; it does not check installed training dependencies or prove a model will fit in memory.

The default config reads data/raw/support.jsonl. For another filename, update dataset.source in moro.yaml. Import registers a source but does not change that setting. Existing import destinations are protected against overwriting.

Commands

Command Current behavior
moro init PATH Create project configuration and folders
moro import SOURCE Copy, link, or register raw input
moro data build Normalize, clean, deduplicate, score, and split data
moro data report Show dataset statistics; supports JSON
moro status Inspect project state; supports JSON
moro doctor Inspect hardware and dependencies
moro recipe suggest Suggest heuristic settings; supports JSON
moro train --dry-run Validate data and estimate memory without ML dependencies
moro train Experimental Hugging Face adapter training
moro eval run SUITE Experimental model evaluation
moro export Experimental artifact export
moro deploy --target ollama Prepare deployment files; does not launch Ollama
moro diagnose Inspect recorded training failures

Use moro COMMAND --help for options. Recipe suggestions do not update moro.yaml; apply the settings manually before training. Estimates are heuristics, especially for custom models and sequence lengths. CPU and Apple hardware receive conservative unquantized suggestions; MPS training is unverified.

Experimental training

python -m pip install -e '.[train]'
# For CUDA quantization, additionally install:
python -m pip install -e '.[cuda]'

The backend uses a pinned Hugging Face / PEFT / TRL reference stack with an optional real CPU integration test. Actual CUDA training still needs hardware validation. See training validation for the environment and test scope. Checkpoint resume is explicitly unsupported. Failed and interrupted runs record their terminal status in SQLite, with configuration and training-data checksum snapshots in the run directory.

Data preparation and dry-run work locally. In local_only mode, training and evaluation resolve local directories or cached model snapshots and fail if weights are missing. allow_external permits downloads. Pre-download the selected model revision or use local model paths. Raw and processed datasets, credentials, and model weights should remain outside source control.

Development

python -m pytest -q
ruff check .
ruff format --check .

See CONTRIBUTING.md and the engineering status for the next milestones. CI runs core tests, lint, formatting, and package build checks on Python 3.10–3.12 without training dependencies.

License

Apache License 2.0.

Metadata

Release files for moroai 0.1.0

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

Source distribution (sdist)

Source distribution for moroai 0.1.0
File Size Uploaded
moroai-0.1.0.tar.gz 248.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for moroai 0.1.0
File Interpreter ABI Platform
moroai-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 478.2 kB

Release files / moroai-0.1.0.tar.gz

Download URL moroai-0.1.0.tar.gz
Size 248.3 kB
Tags Source
SHA-256 checksum
How to use checksums
0f0f3e33240ebbe54b5a9b49d531dca5f1abbe58f14fbdaf93dc75547380368e
BLAKE2b-256 checksum
How to use checksums
fef929be8cb81e33bd7dd9bd9a1d70197013fc97421b50e2904e0bfcd51c0344
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / moroai-0.1.0-py3-none-any.whl

Download URL moroai-0.1.0-py3-none-any.whl
Size 229.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
135c7f105cac3e90ed8b4cd8e00c1d65be157e93cb6c02fcc5449d1397e3def8
BLAKE2b-256 checksum
How to use checksums
2b9451c8fb93659530c410329ba5294298ec3c294f77f780ef026fc06571ced4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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