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.2.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.2.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.2.0
File Size Uploaded
ontogen-1.2.0.tar.gz 447.8 kB Details

Built distribution (wheel)

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

Total release size: 615.8 kB

Release files / ontogen-1.2.0.tar.gz

Download URL ontogen-1.2.0.tar.gz
Size 447.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6a9ee5f2e267a873f227174a40eae5062b5d22221b9e9cdbb266a0dfd9da9673
BLAKE2b-256 checksum
How to use checksums
bad3175532b7e7b04187ee34c8b0f090af0ccf6bc74cbe51c2f1953ff6a93352
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.2.0-py3-none-any.whl

Download URL ontogen-1.2.0-py3-none-any.whl
Size 168.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
121a829f67c729862e392d7904b5ba8fb0ed49fd8b4b5dbdfe6c82def371b45d
BLAKE2b-256 checksum
How to use checksums
53f05a246d75975177ad79fbc3db4660dfe189b6f14edfad8f1be470b47a5d66
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

1.3.0

2 release files

This release

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