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.6.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.6.0
File Size Uploaded
ontogen-1.6.0.tar.gz 524.9 kB Details

Built distribution (wheel)

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

Total release size: 739.0 kB

Release files / ontogen-1.6.0.tar.gz

Download URL ontogen-1.6.0.tar.gz
Size 524.9 kB
Tags Source
SHA-256 checksum
How to use checksums
350efc251d85010ef9fd0a2c806c84488f1ff425faa513b7da46557b07674ea9
BLAKE2b-256 checksum
How to use checksums
8e452f637d256b4a467eae9826642b5f75f4825a7348d544c6c7764606a5da4d
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.6.0-py3-none-any.whl

Download URL ontogen-1.6.0-py3-none-any.whl
Size 214.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d6846724aa8de139fc81f1b67081b1aa64ef80045f19a457e01246dc57c1d350
BLAKE2b-256 checksum
How to use checksums
a0d5bd45341f31c454fbf92b9b954e7f91163c4390c668f82b1ba7e93807e331
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

This release

1.6.0 This release

2 release files

1.5.0

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