POV: You are staring at your screen while Claude Code rewrites the same async function four times because TypeScript allowed undefined to sneak into a database response.
You watch the agent guess. It adds optional chaining. It adds a bang operator. It imports a type guard. None of it stops the crash when production hits an unexpected payload.
Coding agents run on a simple loop. They write, they run, they read the error, they fix. But if the language they write in relies on nulls and hidden exceptions, the loop gets stuck on guesswork.
I am Jake Burwick, a high school student, and I built Vow to fix this loop. Vow is an open source programming language under the MIT license built specifically for AI agents to write. The source code is public at github.com/JakeBurwick/vow.
Vow has no nulls and no exceptions. Every failure is a value. Functions return Result values that must be handled with match or the ? operator.
fn parsePrice(text) {
let n = num(text)?
if n < 0 { return err("can't be negative") }
return ok(n)
}
When an agent hits a bug in Vow, it does not have to guess what went wrong. 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.
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)
Security is handled at the function level. Every function declares whether it can touch the network, files or environment using uses net, uses fs, or uses env. Before a single line executes, you can catch unauthorized access attempts.
$ 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.
The command vow --sandbox checks capabilities before anything runs and refuses a program that reaches beyond what you allow.
Under the hood, Vow compiles to JavaScript. Recursive fib(32) runs in 0.09 s, against 0.14 s for Python, measured on October 7, 2026.
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, showing the two perform evenly on a small sample. In November 2026 tests, Claude Sonnet 5.5 and Opus 5.5 solved every run in both Vow and TypeScript, with Vow recording one failed submission in eighteen runs and TypeScript zero.
You can install it globally with npm:
npm install -g github:JakeBurwick/vow
If you use Claude Code, you can add the MCP server so the agent gets vow_guide, vow_check, and vow_run tools directly:
claude mcp add vow -- vow-mcp
To start using it with Claude Code, Codex, Cursor, or any coding agent, you paste a one-paragraph prompt from the site into your agent, which points it right at the guide. The site also includes an llms.txt and an AGENTS.md file that you can drop straight into a project so any coding agent picks up Vow immediately.
Head over to https://vow-lang.vercel.app to check out the playground, tutorial, docs, and the Errors page that puts five bugs side by side in Vow, TypeScript, and Python.
Top comments (0)