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.5.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.5.0
File Size Uploaded
ontogen-1.5.0.tar.gz 521.8 kB Details

Built distribution (wheel)

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

Total release size: 734.1 kB

Release files / ontogen-1.5.0.tar.gz

Download URL ontogen-1.5.0.tar.gz
Size 521.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c21bba342b2a178d3596e663522bd8b01502ca3ff951594d6242243c4b8b684b
BLAKE2b-256 checksum
How to use checksums
f943f0eaf1a60d9849fa5a05e92cf8670afa3032481ba356ded8804904d3e69e
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.5.0-py3-none-any.whl

Download URL ontogen-1.5.0-py3-none-any.whl
Size 212.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
203a9e560611ac8a8485dfa6f2d716e9c6d86a01a3b0522137f4cc574e26eeb3
BLAKE2b-256 checksum
How to use checksums
8817661ac2132999628fcafdd515dd218a0c1cae432f0d7a66edd9858f306ec8
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

This release

1.5.0 This release

2 release files

1.4.0

2 release files

1.3.0

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