# X07

> Eliminates text syntax. Programs are canonical JSON ASTs (x07AST); edits are RFC 6902 JSON Patch operations; diagnostics ship as stable JSON with quickfixes the toolchain applies deterministically.

**Camp:** Syntactic
**Author:** Author unknown
**Implementation language:** Rust
**Compilation target:** Native (via C codegen); WebAssembly
**Licence:** Apache-2.0 OR MIT
**First seen:** April 2026
**Maturity:** working compiler
**Site:** https://x07lang.org
**Repo:** https://github.com/x07lang/x07

**Agent tooling:**
- AGENT.md
- Agent portal at /agent with versioned JSON entrypoints (manifest, schemas, skills, examples, stdlib, packages)
- x07-mcp (build MCP servers in X07)
- x07lang-mcp bridge (typed access to the toolchain over MCP)
- Per-release skills pack
- Stable error codes; quickfixes emitted as JSON Patch

## Key idea

X07's canonical source is not text. A program is an x07AST JSON document (`*.x07.json`) with a versioned schema; edits are RFC 6902 JSON Patch operations the toolchain applies mechanically. The toolchain emits stable error codes as structured JSON, paired with quickfixes the agent can apply with `x07 fix --write` or `x07 ast apply-patch`. Side effects live in explicit capability worlds; sandboxing is policy-driven.

## The thesis.

X07's diagnosis is that text-based source is exactly where agents lose. Whitespace becomes load-bearing, identical ASTs serialise differently, patches collide on formatting noise, and diagnostics are written for humans. The syntactic-camp move is to delete the text layer: the canonical source is `*.x07.json` (the x07AST), patches are RFC 6902 JSON Patch documents, diagnostics are JSON with stable error codes, and quickfixes are themselves JSON Patches the toolchain applies deterministically via `x07 fix --write` or `x07 ast apply-patch`.

<p class="pullquote">One canonical approach. No "should I use a for loop or map?" decisions.</p>

The distinctive move is the breadth of the machine-facing surface around the language. `x07lang.org/agent` publishes versioned JSON entrypoints &mdash; `manifest.json`, `schemas/index.json`, `skills/index.json`, `examples/catalog.json`, `stdlib/index.json`, `packages/index.json` &mdash; explicitly so agents consume them directly rather than scraping the HTML. Side effects are gated by named capability worlds (`run-os`, `run-os-sandboxed`); the official tooling includes an MCP kit (`x07-mcp`) for authoring MCP servers in X07 and a separate bridge (`x07lang-mcp`) for connecting external agents to the toolchain. The closest direction-of-travel is Magpie, which surfaces SSA at the source level; X07 deletes the source level.

## What it looks like.

<div class="code-sample">
  <div class="code">
<pre>{
  "schema_version": "x07.x07ast@0.4.0",
  "kind": "entry",
  "module_id": "main",
  "imports": ["std.bytes"],
  "decls": [],
  "solve": ["std.bytes.reverse", "input"]
}</pre>
  </div>
  <p class="caption">A program is a JSON document. A quickfix is an array of JSON Patch operations applied to this document; the agent never edits a string of source code, only the structural tree.</p>
</div>

## Distinctive moves.

- **AST as canonical source.** The on-disk artefact is the parsed tree, not text. Schemas are versioned (`x07.x07ast@0.4.0`).
- **JSON Patch as the edit primitive.** Repairs are structural diffs that apply mechanically; whitespace cannot break a patch because there is no whitespace.
- **Capability worlds for effects.** Programs run in deterministic solve worlds or named OS worlds (`run-os`, `run-os-sandboxed`); ambient access is not available by default.
- **Stable diagnostic codes with deterministic quickfixes.** `x07 lint` emits `x07diag` JSON with a stable code and an optional JSON Patch fix; `x07 fix --write` applies it.
- **Versioned agent portal.** Each toolchain release ships an `/agent/v<version>/` directory of machine entrypoints alongside the human docs.
- **Performance claims with a published comparison repo.** The README points at `x07lang/x07-perf-compare` (v0.0.3 snapshot) reporting native-code parity with C/Rust on the included workloads and faster compile times; the methodology lives in that separate repository.

## Maturity.

The repo (`x07lang/x07`) is a multi-crate Rust workspace dual-licensed Apache-2.0/MIT with 471 commits and 108 tagged releases (latest GitHub tag v0.1.49, Mar 2026); the documentation site lists further point releases above that as the docs source of truth (latest `0.2.10`). The `/agent` portal advertises 14 skills, 258 schemas, 17 examples, 410 packages, and 19 stdlib modules &mdash; a documentation surface larger than most catalogue entries. The observable community signal lags that surface sharply: 7 stars, 0 forks, 0 open issues at time of cataloguing, and the README does not name the author. The bet is that the canonical-artefact-plus-JSON-Patch model attracts agent integrators on its own merits; the gap between the published toolchain depth and the visible user base is the entry's defining quality and worth flagging.

## Agent tooling.

`AGENT.md` at the repo root is the human-readable orientation; everything else is structured. The `/agent` portal publishes stable JSON entrypoints per-version (`entrypoints.json`, `manifest.json`, `schemas/index.json`, `skills/index.json`, `examples/index.json`, `stdlib/index.json`, `packages/index.json`). The toolchain ships an MCP kit (`x07-mcp`) for authoring MCP servers in X07 and a bridge (`x07lang-mcp`) for connecting agent runtimes to the toolchain itself. The canonical loop is `x07 init → x07 lint → x07 fix → x07 run → x07 test`, every stage emitting structured JSON.

## Design DNA

- **[Magpie](https://agentlanguages.dev/languages/magpie.md)** *(Syntactic)* — Same-camp cousin pointing the same way. Magpie surfaces SSA but keeps source text; X07 walks past text and treats the AST itself as the canonical artefact. Same direction, further along the axis.
- **[Sever](https://agentlanguages.dev/languages/sever.md)** *(Syntactic)* — Both push the surface as far from human authoring as the camp allows; Sever crams meaning into single characters, X07 abandons characters as the unit altogether.
- **[NERD](https://agentlanguages.dev/languages/nerd.md)** *(Syntactic)* — Opposite end of the same camp. NERD keeps text and economises tokens inside it; X07 declares text a lossy intermediate and edits the tree directly.

---

HTML version: https://agentlanguages.dev/languages/x07/
Catalogue index: https://agentlanguages.dev/llms.txt
Catalogue homepage: https://agentlanguages.dev/index.md
