A living terminal

It rains in
every
language

Creature is an AI-agnostic terminal that runs your own models — in-process, on your machine, with no server in between. Two minds, a conscious and an unconscious, and a colour it isn't allowed to fake.

Get out of the rain
01 — What it is

Bring your own soul.

Creature runs language models — yours. It runs them in-process via MLX on Apple Silicon, so the model lives inside the binary rather than behind a local server. No Ollama, no LM Studio, no daemon to babysit. Or point it at any OpenAI-compatible endpoint and use whatever you already pay for.

With in-process models, nothing leaves your machine. Not the code, not the question, not a telemetry ping. That isn't a privacy policy — it's an architecture. There's no network call to opt out of.

Requires
macOS 14+
Apple Silicon for in-process models; remote endpoints work on anything. ~2 GB free disk for the default model on first run.
Licence
AGPLv3
Free to use, modify and share. Creature is infrastructure, not a subscription. If it's useful you can support it — you never have to.
02 — The two slots

A mind that sleeps on it.

Creature has two cognitive slots, and you fill both. The conscious slot reasons, explains and converses. The unconscious slot does code and logic. They're different models, chosen separately, and creature calibrate runs a handshake that syncs whatever pair you plugged in.

Which is why "what's the best model" is the wrong question here. Put a big remote reasoner in the conscious slot and a small fast local coder underneath it. Or run both local and go offline entirely, on a plane, forever. The defaults below are Apache-2.0 and arrive on first use.

Slot I
Conscious
Reasoning, explanation, conversation. The one that talks to you.
default
Qwen2.5-3B-Instruct-4bit
Slot II
Unconscious
Coding and logic. The one that does the work you don't watch.
default
Qwen2.5-Coder-3B-Instruct-4bit
03 — Earned colour

Grey is not green.

Every other tool tells you your code is fine by failing to mention that it isn't. Creature can't. Green is granted only by the configured checker's affirmative exit 0, and it says exactly how deep that proof goes: parse, syntax, lint, or typecheck. A syntax green never masquerades as a typecheck green. A missing checker grants nothing.

A node can never be greener than its enclosing scope's verdict. A diagnostic refines where the breakage is; it never grants health. The bound — creature's colour law

So there are three colours, and the third one matters most. Unknown is a real state that stays on the screen. Press the probe: nothing turns green until its checker says so, and a broken leaf takes its parents down with it.

$ creature check ./Sources
Every node starts unknown — because nothing has been proven yet. That is the honest state, and Creature will sit in it indefinitely rather than guess.

Green can't be worn bare, either. Internally every green carries the triple ⟨grammar · unit · condition · proof strength⟩ — which grammar vouched for it, over what unit, under what condition, and whether the result was parsing, syntax, lint, or typecheck. A green with nothing behind it is unrepresentable.

04 — Why it rains in colour

One meaning, many grammars.

Look up. The storm falling through this page is the same handful of human meanings — language, understand, hello — in fifty tongues at once, and not one of them is the original. That's the whole idea, and it's older than software: a meaning is not the words you happened to say it in.

Code is the same. A for loop in Rust and a for loop in Elixir are related thoughts in two grammars. Creature carries 43 of them offline — each with a sourced checker recipe and an explicit proof depth — and treats none as the centre.

43 checker-compatible grammars ship in the current Creature manifest. Every tile can earn its own green when its named tool is installed; without that tool it remains unknown. The right-hand label is the strongest claim that green is allowed to make.
05 — Where it's going

Every grammar, its own verdict.

A Swift add and a Python add may share a structural shape. That makes them candidates, not equivalents. Neither may borrow the other's green. A cross-language link exists only when one current, unambiguous translation path proves the relevant facet — calls, types, declarations, control flow — under the active conditions.

Creature keeps each native fact immutable, records where every translation rule came from, composes indirect conversions through a versioned dialect graph, and invalidates stale recipes. Ambiguous or missing paths stay unresolved. The prior art is in the mechanism; the evidence remains Creature's own.

Now
Checker registry
Forty-three sourced recipes, from parsers to typecheckers. Each language earns only the proof its own tool can support.
Now
Translation provenance
Immutable native facts, composed conversion paths, presence conditions, ambiguity detection, and per-rule invalidation.

Come out in
the rain.

Creature is free, AGPLv3, and runs entirely on your own machine. It's out — pre-v1, and looking for willing guinea pigs rather than customers. The code is open; come and break it.

AGPLv3 · free, and staying free · macOS 14+ on Apple Silicon
Two model slots · 43 grammars offline · nothing leaves the machine