I am Jake Burwick, a high school student, and I built Vow, an open source programming language under the MIT license designed for AI agents to write. AI coding agents such as Claude Code, Codex, and Cursor work in a continuous loop: write, run, read the error, fix.
When agents write code in languages with null values and implicit exceptions, failure paths are easily overlooked. An unhandled exception or a missing null check causes a runtime crash later in execution. Vow has no nulls and no exceptions.
In Vow, functions that can fail return Result values. Every failure is represented directly as a value. Functions return Result values that must be handled with match or the ? operator.
Here is how failure is handled in Vow:
fn parsePrice(text) {
let n = num(text)?
if n < 0 { return err("can't be negative") }
return ok(n)
}
The ? operator unpacks the successful value or returns the error from the function. If an agent tries to ignore a failure state, it must handle the Result value before moving forward.
In tests conducted in October 2026 with Claude Haiku 4.5, code that agents finish passes fresh hidden tests at 99.5% for Vow and 99.3% for TypeScript. On three brand-new hard tasks, Vow had one failed submission in nine runs and TypeScript had zero; the two perform evenly on a small sample (measured October 2026).
When an error occurs, Vow formats the output so an agent can fix it immediately. Every Vow error says what is wrong, where, and the likely fix. Errors are written as repair instructions an agent can act on without a human.
An error, as Vow prints it:
x TypeError: can't add a num and a str
-> line 6, col 10
6 | return "Total: " + sum
^^^^^^^^^^^^^^^
Likely fix: convert the number to text
first: str(sum)
Every function declares whether it can touch the network, files or environment (uses net, uses fs, uses env).
The command vow --sandbox checks capabilities before anything runs and refuses a program that reaches beyond what you allow.
Refused before it runs:
$ vow --sandbox --allow fs=./data app.vow
x SandboxError: needs capabilities
the sandbox does not grant
env: fn leak declares 'uses env'
Nothing was run.
Vow compiles to JavaScript. Recursive fib(32) runs in 0.09 s, against 0.14 s for Python (measured Oct 7, 2026).
Install with:
npm install -g github:JakeBurwick/vow
For Claude Code there is an MCP server:
claude mcp add vow -- vow-mcp
This gives the agent vow_guide, vow_check and vow_run tools. The site has an llms.txt and an AGENTS.md you can drop into a project so any coding agent picks up Vow. To use it, paste a one-paragraph prompt from the site into Claude Code, Codex, Cursor or any coding agent; it points the agent at the guide.
The site has a playground, a tutorial, docs, and an Errors page showing five bugs side by side in Vow, TypeScript and Python at https://vow-lang.vercel.app.