The programming platform built for AI.
Atracode is a language, compiler, runtime and operating system in one. Models and agents write it, Atracode verifies it, and it runs safely and deterministically on any target.
// researcher.atr — an agent, its permissions and its budget, in one file
agent Researcher {
uses web.search, fs.read("./notes")
budget tokens: 50_000, time: 30s
fn run(question: Text) -> Report {
let sources = web.search(question, limit: 8)
let facts = sources |> parallel extract(Fact)
return Report.compose(facts) verify cites(sources)
}
}One platform · four layers
Not just a language.
The whole stack for AI-written software.
Most stacks were built for humans typing in an IDE. Atracode is vertically integrated for models, from the first token to the running process.
Layer 01
A syntax models write well.
Atracode is designed for how models think: explicit types, declared side effects and a small, regular grammar that is token-efficient to generate and hard to get subtly wrong.
- Effects and permissions are part of the type signature
- Structured outputs are first-class types
- Short, regular grammar that takes fewer tokens to generate
fn summarize(doc: Doc) -> Summary
uses model("any") // effect is declared, not hidden
{
return model.ask(doc, as: Summary)
}Layer 02
Verify before anything runs.
The universal compiler type-checks, proves capability bounds and lowers one program to every major target. Errors are written as structured feedback that an agent can fix in a single pass.
- One source to WASM, x86-64, ARM64 and GPU
- Static capability and budget analysis
- Machine-readable diagnostics with suggested fixes
$ atra build agent.atr --target any
error[E0412]: capability not granted
--> agent.atr:7:5
| fs.write("./out") requires uses fs.write
= fix: add `uses fs.write("./out")`Layer 03
Deterministic, sandboxed, replayable.
Every run is isolated, metered and recorded. Replay any execution step by step, fork it from any point, or cap it with hard limits on tokens, time and money.
- Capability-based sandbox by default
- Bit-for-bit replay of any run
- Hard budgets: tokens, wall-clock, spend
$ atra run agent --sandbox --budget 2.00usd
▸ run 7f3a9c step 14/14 1.84s $0.31
$ atra replay 7f3a9c --from step:9
▸ forked → run 8b21d0Layer 04
Where agents live and collaborate.
AtraOS schedules thousands of agents as lightweight processes with their own memory, file systems and message channels, so multi-agent systems are an OS primitive instead of a framework.
- Agents as processes: spawn, supervise, restart
- Typed message channels between agents
- Persistent memory and per-agent file systems
let team = [Planner, Coder, Reviewer]
|> spawn(each, memory: persistent)
on team.Reviewer.rejects(patch) {
team.Coder.send(patch.feedback)
}