Skip to main content

onto — a living compiler of ontologies

A program is stored not as code, but as a genome: entities, rules with executable bodies, contracts, invariants. Code is the phenotype: printed into dialects (Go, Python), proven by the court (SMT), living under a warden, and regrown from scratch. A change in behavior without confirmation is a question with an executable counterexample, not a silent merge.

uv tool install ontogen                # -> global `onto`
onto validate genomes/hotel.yaml       # typecheck the genome
onto court    genomes/hotel.yaml       # SMT court: contracts proven, mutants distinguished
onto serve    genomes/hotel.yaml --port 8090 --data ./data [--store sqlite]
onto warden   genomes/hotel.yaml ...   # daemon: watch -> gates -> molt -> monitors
onto materialize genomes/hotel.yaml --dialect go-stdlib   # print the phenotype
onto mcp      genomes/hotel.yaml       # a mouth for the LLM (propose = the only write)

Models: bring your own (any OpenAI-compatible provider)

Configure providers and per-task model ladders in .onto/config.toml — OpenRouter, OpenAI, Groq, Together, DeepSeek, a local Ollama/vLLM, anything OpenAI-compatible. Name a known provider and give only a key (base_url is a preset); reference models as provider:model or bare. Keys come from ${ENV} or @keyfile, never hardcoded. onto models shows the registry.

[default]
provider = "openrouter"
[provider.openrouter]
api_key = "${OPENROUTER_API_KEY}"
[provider.local]
base_url = "http://localhost:11434/v1"   # Ollama
api_key = "ollama"
[ladders]
skills = ["qwen/qwen3-coder", "qwen/qwen3-coder-plus"]
nl     = ["anthropic/claude-sonnet-4.5", "local:qwen2.5-coder"]

Quickstart (zero machine)

curl -LsSf https://astral.sh/uv/install.sh | sh   # 1. uv (brings its own Python)
uv tool install ontogen                           # 2. the engine, isolated
onto init                                         # 3. couple this project + harness
#    -> .onto/ + genome/ + MCP registration + edit-guard hook + skill
onto court genome/genome.yaml                     # prove (ALL PROVED)
onto serve genome/genome.yaml --data .onto/data   # live organism from second zero

The harness (Claude Code) sees the MCP server immediately; it changes behavior only through propose (checkers + SMT court + semantic diff), and a hook blocks any direct edit of the genome or the printed phenotype. Dialect toolchains (e.g. Go/JVM) are pulled lazily, only at materialize.

Status: 1.3.0 — the U1-U8 constitution is closed, IR v1.0 is frozen (D72)

End-to-end scenario (IDEAL, works)

A natural-language product description -> nlfront builds a genome+acceptance -> the COURT proves -> the organism lives (warden timers, /admin, /list, /q?params, webhooks) -> any language is grown by the model (growdialect). Exams: exams/fnl.py, exams/fideal.py, exams/fgrow.py.

Where to look

you need read
HOW any software is developed under this model docs/design/MODEL.md — the method's constitution
to run an organism (features, operation) docs/OPERATOR.md + onto explain <root> <entity>
engine development CLAUDE.md -> docs/log/PLAN.md -> docs/log/JOURNAL.md
architecture and decisions docs/design/SPEC.md, docs/log/DECISIONS.md (D1–D87)
what we don't do and why docs/design/NOT.md, docs/design/SCARS.md (v0 scars), docs/design/UNEXPRESSIBLE.md
visual diagram docs/anatomy.html

What the exams have proven (exams/, all green)

the organism lives via an interpreter without code generation; one judge is green on interpreter+Go+Python; contracts are proven (COURT), 21/21 mutants distinguished, an equivalent mutant recognized; gene composition (payments in three domains byte-for-byte); metabolism by measured heat with failure-with-arithmetic; warden: molt in 0.3s, migration of 30k live events by functor, REVOKE of rights; live CEGIS with an SLM (~$0.001/skill); a membrane for others' organisms (drift -> trust revocation); 25k ev/s ingest, p99 1.8ms, kill -9 -> start from snapshot 0.01s; jsonl|sqlite store with a byte-identical fold. Running the whole battery: tools/check.sh.

Status: the engine is built and delivered exam by exam (see docs/log/PLAN.md); open — calendar operation and the external operator (F7).

Metadata

Release files for ontogen 1.3.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 ontogen 1.3.0
File Size Uploaded
ontogen-1.3.0.tar.gz 461.2 kB Details

Built distribution (wheel)

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

Total release size: 638.9 kB

Release files / ontogen-1.3.0.tar.gz

Download URL ontogen-1.3.0.tar.gz
Size 461.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b5f4992b19b96f70973373df48d8defa88f993b0aed867e6bad64008e2484457
BLAKE2b-256 checksum
How to use checksums
b676653f8feccd75eb7f8cef4c1683898b1e1654001c3321995633fe58c1d9de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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":null}

Release files / ontogen-1.3.0-py3-none-any.whl

Download URL ontogen-1.3.0-py3-none-any.whl
Size 177.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ea3ffb0c84b277794b49c18423e33644889b091f939fb8b5f2a84bb2c5ae54b3
BLAKE2b-256 checksum
How to use checksums
fc75eb4ee9b24bb1bc010b097f4ef4a827faf4fb585c6002c4f544d743b2ea82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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":null}

Release history Release notifications | RSS feed

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

This release

1.3.0 This release

2 release files

1.2.0

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