agentlanguages.dev
syntactic camp · also verification

With.

A self-hosted, LLVM-native systems language with ownership-based memory safety, first-class C import and migration, and agent guidance generated into every new project.

authorEric Hartford
implementationWith (self-hosted)
targetNative code via LLVM
licenceMIT
first seenFebruary 2026
maturityworking compiler
markdownwith.md

The thesis.

With is a systems language whose safety model is Rust-like in outcome and different in mechanism. Ownership is persistent and single; borrowing is ephemeral and never stored; relationships that must outlive a scope are expressed as typed handles. That trade removes lifetime annotations from the language at the cost of forbidding references inside long-lived data structures. The compiler is written in With and rebuilds itself to a byte-identical fixpoint.

It is designed for agents and humans to author alike. The rule that removes ceremony for a human, that no character the program already determines has to be written, applies equally to an agent generating the code, and the explicit spellings that remain sit where an author of either kind is most likely to be silently wrong. with init gives every new project an agent primer.

If the creators of the language can leak by accident, the design is wrong, not the programmer.

What it looks like.

fn handle(req: Request) -> Response:
    let user = db.find_user(req.params.id) else:
        return Response.not_found()
    Response.json(user)
// scoped mutation: the value is mutable only inside the block
let config = with Config.default() as mut c:
    c.timeout = 30
    c.retries = 3

Indentation-scoped, inferred where the type is forced, with let … else for early exit and a with block that confines mutation to a scope.

Distinctive moves.

Maturity.

A working, self-hosting compiler with CI on Linux (x86_64, aarch64), macOS (arm64) and Windows (x86_64, aarch64), nightly releases and an LSP. The specification is versioned and ahead of the implementation in places; the repository marks compiler behaviour that does not yet match a ruling as non-compliant rather than as precedent.

Agent tooling.

with init generates an AGENTS.md and CLAUDE.md in every new project, containing a compact primer on With’s syntax, ownership model, idioms and common mistakes, written for an AI assistant working in that project. The compiler itself is developed largely by agents under a human maintainer who rules on language design, and its own repository carries the same kind of guidance.

design DNA
  • ZeroverificationBoth are native systems languages that speak to agents directly. Zero puts the agent interface in the compiler, with structured JSON diagnostics and typed repair plans; With puts it in the project, generating an AGENTS.md and CLAUDE.md primer at init and keeping the language itself human-first.
  • VeraverificationBoth check more than types, but different things. Vera makes every function declare contracts and discharges them with Z3; With checks ownership and resource release, and asks for no functional-correctness specification.
  • ilosyntacticOpposite answers to ceremony. ilo removes characters to minimise the tokens a model spends; With removes only the characters the program already determines, and keeps an explicit spelling wherever two meanings remain.