Agents write Sley in a typed Python dialect or propose typed changes directly. A deterministic kernel checks each change against verified program state, and only valid changes commit. Sley 2.1.7 is self-hosted and open source under Apache-2.0, built by Greyforge Labs.
The whole walkthrough, from install to submit, is in the docs.
Sley Arena · free · runs in your browser
Bots written by AIs, in Sley
Every Sley Arena bot is a Sley program in the Python dialect. Pick a ready-made bot or have any AI write one, test it against the practice bots right in your browser on any operating system, then enter it with GitHub sign-in and watch it climb the ladder.
Download sley-2.1.7-linux-x86_64.tar.gz and SHA256SUMS from the release page, then:
sha256sum -c --ignore-missing SHA256SUMS
tar xzf sley-2.1.7-linux-x86_64.tar.gz
cd sley-2.1.7-linux-x86_64
./bin/sley version
./bin/sley-agent help
python3 demo/run_demo.py # reports "result": "PASS"
The demo imports, queries, runs, branches, exports and clones a program, runs GC, and confirms the clone answers byte for byte. Source builds and the AF1-X authoring path are in the docs. On another platform, try Sley in the Arena: bots compile and play right in the browser.
Self-hosted since 2.1.0
Sley builds Sley
Sley's semantic toolchain is a Sley program. On a pinned host, without the Rust seed compiler, it rebuilds its own executable closure to a byte-identical fixed point. Repeat the build with the self-rebuild bundle, sley-2.1.0-selfhost-linux-x86_64.tar.gz (needs bubblewrap).
2.1.7current release
14 phasesvalidation per change
18 kindstyped entities
Apache-2.0open source
Typed semantic state
Programs are SSMC1 typed state: an immutable graph of 18 entity kinds, encoded in canonical SCB1. Identity comes from the structure itself.
Deterministic identity
Every verified state has a content-addressed root. The same state always has the same root, however it was reached.
Proposal before mutation
Agents propose typed changes against a base root. Preconditions reject stale edits, and no proposal can grant itself authority.
Validation before commit
Fourteen ordered phases check every proposal before an atomic commit with a receipt. A crash leaves the old state or the complete new one.
Policy and capability
Protected policy roots and scoped capability tokens decide what a change may touch. The only way out to the host is a bounded, typed adapter.
Native version control
Branches, semantic compare, deterministic merge with explicit conflict objects, exchange and clone. GC keeps every retained root.
Deterministic execution
A deterministic VM runs functions under fuel, output and cancellation limits and records a canonical digest of every run.
Built for agents
Agents talk to sley serve over SMP1, in binary frames or JSON lines. Every query reports what it left out, and every error carries a stable code.
State → Proposal → Validation → Transaction → Verified State
How an agent changes a Sley program
An agent starts from a verified state root, asks bounded queries for the context it needs, and proposes typed mutations. The kernel validates the proposal in fourteen ordered phases, commits it atomically with a receipt, and the new state gets its own root. sley serve exposes each step as an SMP1 method. How it works follows one change through all seven steps.
Inside Sley 2.1 / 2.1.7
What ships in Sley 2.1
Typed Python-dialect files compile into the same canonical graph as every other authoring input, with pytest-style tests and @dataclass records (example).
In 2.1.7, list indexing by a loop counter skips its per-access conversion and the VM word tier reads vectors and fuses more of each burst: up to 1.26x faster than 2.1.6, and faster than CPython 3.13 on ten of eleven published benchmarks, process start included (benchmarks).
The word tier in 2.1.5 runs the published VM benchmarks 2.2-2.9x faster than 2.1.4 (2.1.5 release notes). It builds on the direct calls that made fib(30) about 13x faster in 2.1.3 than in 2.1.2 (2.1.3 release notes).
Rust hosts compile and run Python-dialect programs in memory, natively or in WebAssembly, with the sley_agent::embed API from 2.1.6 (embedding guide).
Agent output stays short: try prints failures and one count line, and a refusal points at its exact line and column.
Since 2.1.0, the semantic toolchain rebuilds its own executable closure to a byte-identical fixed point with the Rust seed absent (self-hosting record).
Reproducible-build verification across a second host (two clean musl builds already produce identical archives).
The self-hosting proof on a second host family (2.1.0 ran it on Linux x86_64).
Sley 1.x Legacy
Looking for human-readable Sley 1.2?
Sley 1.2 completes the human-readable line: a self-hosted compiler, 99 report schemas, 187 contract fixtures, 72 corpus cases and 264 integration checks, under Apache-2.0.