Fruth

Where local AI becomes durable work.

Fruth is a durable semantic state inference engine for local AI. A model can say “done”; Fruth records what the runtime can prove happened: which outputs exist and what remains open. Inspect the evidence and continue from the recorded state.

Local by default. Use compatible models through Ollama, MLX, llama.cpp, or Apple Foundation Models. Runtimes and models are supplied separately; AFM uses the model available on your Mac. Apple PCC is an optional cloud backend.

Inside a durable response

A response is more than an answer.

A Fruth response connects intent to a graph of required work, dependencies, and evidence. It records delivered results and work that still needs attention. The visible reply is one view of that state.

Promotion turns possibility into obligation.

Intent opens a possibility space. Validated promotion makes relevant work an explicit obligation, with its own requirements and evidence for completion. Other possibilities can remain available without becoming owed work.

Owed work stays visible.

Dependencies can leave required work pending. Late fill keeps that work explicit and binds later results and evidence back to the same response. Missing outputs and blocked branches remain visible.

Completion follows evidence.

Review checks branch results against their requirements and the current intent. Each frozen frame records what is fulfilled, blocked, or still open. Continuation adds a new frame while preserving the earlier state and evidence.

One response, opened up

One request becomes connected work.

“Echoes of the Pass” asked Fruth for a local exhibition website with two mountain images and a spoken narration. The recorded run connects five saved artifacts in one response.

Completion still has to be earned. Here, the evidence includes five materialized outputs, audio integrity checks, fulfilled branch contracts, and a bundle whose local links resolve.

Request summary

Create a local exhibition website with HTML, CSS, exactly two mountain images, and one English WAV narration.

  1. 1
    Define the owed work.

    Five saved outputs: HTML, CSS, two mountain images, and an English WAV narration. Their dependencies keep the exhibition and its media connected.

  2. 2
    Fill the pending outputs.

    Late fill carries the image, audio, and file branches until their saved results and evidence are available. The page then links to those actual media files.

  3. 3
    Review and freeze.

    The final frame records fulfilled closure with no pending or failed branches. The portable bundle contains all five artifacts, with its local links checked.

Recorded result · fulfilled The reply summarizes the moment. The response preserves the work.

Echoes of the Pass · 27 October 2026. Inspect the exact prompt, final response, monitor snapshot, and artifact checksums.

Inspect the run’s evidence on GitHub

The runtime underneath

Fruth gives every
response a body.

Bring local models, saved files, and their evidence into one response. Inspect and continue the work through the browser or the Responses API.

Run compatible local models.

Run Ollama, MLX, llama.cpp, and Apple Foundation Models from one control plane, with multiple instances and independent start/stop controls. Manage compatible downloaded models and local GGUF files, or use Apple's available on-device model for text generation, image analysis, and streaming, with optional OCR and barcode/QR tools.

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.

Optional cloud providers. Fruth supports Apple PCC through user-installed Shortcuts and an explicitly enabled ChatGPT route. Selected prompts, context and attachments leave your device for Apple or OpenAI respectively. Provider availability and usage limits apply. Apple PCC setup ↗ Fruth also offers an optional companion skill that helps ChatGPT inspect runtime truth, work with canonical outputs, and execute requests through Fruth. Local operation does not depend on a cloud provider.

Local setup

Start Fruth with a local model.

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

Fruth is experimental, tested on macOS on Apple Silicon with Python 3.11 or newer. Current source release: 0.1.9. 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, or use an Apple Foundation Model on a compatible Mac with Apple Intelligence and the installed fm command.

Fruth

Start Fruth.

Extract the download, enter its folder, and launch Fruth. On first start, the launcher creates the Python environment and installs its requirements; this needs internet access.

Terminal
./fruth start
View Fruth on GitHub