Tessera

A compact, safety-first language for LLM-assisted development.

Tessera is a programming language that language models can write, review and maintain, and that people can still trust. Small, regular syntax. Effects you can read from a signature. Design rationale kept next to the code.

View on GitHub Why Tessera? How it works

What we are doing

We are building a programming language for a world in which language models write much of the code. The language, its compiler, its runtime and its standard library live in one open repository, and so does the tooling that measures whether the design choices really help models write correct programs.

The goal is not code that is pleasant to type. It is software whose behaviour is easy to check: by a model that reviews it, and by a person who cares what the software does rather than how the code looks.

What makes it different

Six ideas, all aimed at the same thing: programs that are cheap for a model to produce and cheap for a reviewer to verify.

Written for models, reviewed by humans

The source is plain text with a compact, regular syntax, so a model can produce it reliably and a reviewer can read it quickly.

Safe by construction

No raw pointers, no unchecked memory access, bounds-checked lists and checked integer arithmetic. Programs compile to safe Rust.

Effects in the signature

A function that can read files, use the network or query a database says so with uses. No uses means pure.

Rationale that survives

A note records why code exists, and the tooling keeps it. Intent does not get lost in a chat history.

Self-hosting

The compiler is written in Tessera itself. The stage 1 compiler is the one that is used today.

Portable

The aim is Linux, Windows and macOS. Web applications already run as CGI, FastCGI, a built-in HTTP server, or inside nginx and Apache.

A first look

This program has a pure function, a policy that carries a note, and exactly one place where output happens. The uses io on main is the only effect in the file. Everything else is pure: it cannot print, read a file or open a connection.

hello.tes
note "Keep the age policy in one review point."
fn is_adult(age: Int) -> Bool = age >= 18

fn label(name: Text, age: Int) -> Text {
    let category = if is_adult(age) { "adult" } else { "minor" }
    "\(category): \(name)"
}

fn main() -> Unit uses io {
    print(label("Ada", 20))
}

Want the longer argument? Read Why Tessera. Want the tour? Read The language. Curious how it all fits together? See How it works.

Follow the work

Everything is open source under the MIT licence. Read the design documents, try the examples, or open an issue.

Tessera on GitHub Get Tessera