Ollmo

Where local AI becomes durable work.

Ollmo is a state-native runtime for local AI. A model can say “done”; Ollmo records what the runtime can prove happened: which outputs exist, which work remains open, and why. Runtime results become inspectable artifacts and continuable runtime state.

Local by default. Use compatible models through Ollama, MLX, or llama.cpp. Backend packages and model weights are installed separately.

Inside a durable response

A response is more than an answer.

An Ollmo response can hold the current intent, a graph of connected work, the evidence behind each branch, the outputs that actually exist, and what remains open. The visible reply is only one view of that state.

Promotion turns possibility into obligation.

Intent opens a possibility space. Only relevant work is promoted into explicit obligations; what was merely considered can remain “checked, not bound.”

Work becomes a graph.

Required outputs, branches, dependencies, artifacts, and open state stay connected instead of being flattened into one stream of prose.

State becomes a response frame.

At a recorded boundary, Ollmo preserves what is fulfilled, blocked, or still open. Runtime evidence is reviewed before the frame can honestly report completion.

One response, opened up

One request becomes connected work.

Ask for one webpage with three different local images. Ollmo can represent that request as four required artifacts linked by dependencies instead of flattening it into a single answer.

Completion still has to be earned. An image prompt is not an image. A code block is not a saved webpage. A placeholder link is not a finished result.

Request

“Create a webpage with three different local images.”

  1. 1
    Shape the graph.

    One webpage branch, three local image branches, and the dependencies needed to bind their saved paths.

  2. 2
    Materialize the evidence.

    Each branch produces a concrete saved artifact or remains visibly open with a reason.

  3. 3
    Review and freeze.

    Ollmo checks each required output and link against runtime evidence and, where needed, reviews whether the finished set still fits the current intent before the frame can report fulfillment.

Fulfilled The reply summarizes the moment. The response preserves the work.

All four artifacts satisfy their branch contracts, exist as saved outputs, and their links resolve.

The runtime underneath

Ollmo gives every
response a body.

Ollmo connects compatible local backends, supported media capabilities, durable artifacts, and canonical Responses endpoints so work can be executed, inspected, and continued.

Run compatible local models.

Run Ollama, MLX, and llama.cpp side by side from one control plane – including multiple instances of the same model. Pull compatible models, add Hugging Face repositories or local GGUF files, remove local copies, and start or stop each instance independently.

Turn branches into outputs.

Route text and image generation, voice input and transcription, text-to-speech, vision, and OCR work to compatible local capabilities, then keep saved results as previewable artifacts.

Carry the work forward.

Inspect outputs and response state, open compatible link-checked bundles, revisit saved work, or connect through canonical Responses endpoints.

Third-party providers. Ollmo can optionally use an explicitly enabled third-party provider (currently ChatGPT), directly or through Ollmo's routing. For those turns, the current prompt, only the context Ollmo promotes as relevant, and any explicitly selected files or Ollmo artifacts leave your device and are processed by that provider – by OpenAI for the current ChatGPT integration. Ollmo also offers an optional companion skill that helps ChatGPT inspect runtime truth, work with canonical outputs, and execute requests through Ollmo. Local operation does not depend on either.

Local setup

Start Ollmo with a local model.

Ollmo itself can start before a backend or model is available. Local inference needs one supported runtime and at least one compatible model; neither the runtime nor its model weights are bundled.

Ollmo 0.1.0 is an experimental release candidate, tested on macOS on Apple Silicon with Python 3.11 or newer. Output quality and factual accuracy still depend on the models and providers you choose.

Backend

Choose a local runtime.

Install Ollama, MLX, or llama.cpp using that project's own setup.

Model

Add a compatible model.

Add or select at least one model the chosen runtime can actually run. After Ollmo starts, its Models view can manage compatible models and instances.

Ollmo

Start the control plane.

From the repository checkout, create the Python environment, install the requirements, and launch Ollmo.

Terminal
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
./ollmo start
View Ollmo on GitHub