CX · cxhome.orgHome
PlaygroundDownloadsAboutv0.18.0-pre.1
Sheet 00 · cxhome.org
CXCX

One syntax.
Data to platform.
Agentic ready.

Reach for CX whenever the data is the point. One bracketed syntax is the document, the query, the program and the compiler's own tree, so the file you read is the file you transform, validate, hash, store and serve — with no second language in between.

The answer on the right was computed twice: by the cx that built this page, and — if your browser carries our engine — by libcx.wasm just now.

prog.cx

[?let [= $subtotal 19.99] [= $shipping 5.01] [total [+ $subtotal $shipping]]]
$ cx prog.cx
[total 25.00]

Recorded when this page was built · looking for the engine…

Fixture ap-decimal-float-mix-right in conformance/llm/antipatterns.cxd — replayed against this cx when the page was built.

What it is

CX starts from a single axiom: computing is data transformation, nothing more. Languages, frameworks and processes are ceremony around that fact. CX is the principle made a language: transform.

We write the data and the code in one shape, so a query is a pattern over the document — the [user [name $n] [email $e]] you would have parsed into objects is the very form that matches them.

input.cx

[users
  [user [name Alice] [email a@x.com]]
  [user [name Bob] [email b@x.com]]]

prog.cx

[?for [user [name $n] [email $e]]
       [yield [pair name=$n email=$e]]]
$ cx --data=input.cx prog.cx
[pair name=Alice email='a@x.com']
[pair name=Bob email='b@x.com']

Fixture program-for-003-name-email-pair in deps/cx-core-code/conformance/code.cxd — replayed against this cx when the page was built.

Why

We make exactness the default and every effect a grant: a fraction is an exact decimal, a program reads nothing it was not given, and a refusal is an ordinary value that names the flag which would allow it.

prog.cx

[?lib 'cx-stdlib/io']
[$io:read-file "/var/log/app.log"]
$ cx prog.cx
[err code=cx-err:CXER0271 message='E_CAP_DENIED: read capability required for io-read-file; none granted (grant via --allow-read)' at='2:1']

Fixture io-001-read-file-cap-denied in deps/cx-core-code/conformance/stdlib/io.cxd — replayed against this cx when the page was built.

Proof

We speak the agents' protocols as plain values — an MCP request is a CX element projected to its wire form, with no serializer in the path — and every one of the 4 examples on this page was replayed byte for byte by the cx that built it, which refuses the page when one stops holding.

prog.cx

[?lib 'cx-platform/mcp' as=mcp]
[?lib 'cx-stdlib/json' as=json]
[$json:emit [$mcp:call-tool-request 1 "get_weather" {location: "NYC"}]]
$ cx prog.cx
'{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"location":"NYC"},"name":"get_weather"}}'

Fixture mcp-001-call-tool-request-shape in deps/cx-platform-agent/conformance/x/mcp.cxd — replayed against this cx when the page was built.

The journey

Day oneInstall, then a first programThe quickstart: a first file, a first conversion, a first query, a first schema — in the shell or in the playground. Week oneThe guide, in orderThe data ring, the code ring, then the platform group: the store, the served application, the flows that run it. ProductionOperationsRunning what you built: the store's time and consistency, the deployment document, the four builds of one binary. AgentsThe LLM doorThe primer an assistant loads before it writes a line, llms.txt for one fetch, and MCP as a module of the platform group.