ZeroLang — The Programming Language Built for AI Agents | 2026-05-20
文章目录
- The most striking thing about ZeroLang isn't any single language feature — it's the philosophical bet the team is making. Traditional programming languages evolved over decades with human cognitive limits in mind. We got error messages that are friendly to humans, syntax that reads like English prose, and libraries that prioritize discoverability. Zero says: what if we optimized for a different kind of reader? My personal take: this is one of the most intellectually honest experiments in the "AI-native language" space right now. There are plenty of projects that claim to be AI-friendly by just wrapping JSON APIs or adding an "AI mode" to an existing language. Zero goes deeper — it redesigns the fundamentals (how imports work, how errors are structured, how tooling exposes facts) with agent consumption as the primary constraint. The structured JSON output from zero check, zero graph, and zero size isn't an afterthought — it's the main interface. This means an AI agent can programmatically inspect, repair, and extend Zero code with the same reliability you'd expect from working with a well-defined API. The standard library depth is another differentiator. Rather than encouraging developers to pull in third-party packages for common tasks, Zero bakes capabilities directly into std.*: filesystem operations (std.fs), environment access (std.env), argument parsing (std.args), process management (std.proc), and more. This "batteries included" philosophy reduces the dependency graph an agent needs to navigate. When most programs don't start with a dependency search, agents can act faster and with fewer failure modes. If you're a developer building AI-powered coding assistants, autonomous agents, or code repair pipelines, ZeroLang is worth watching as both a potential target language and as a source of design patterns. Even if you don't adopt it, studying how its tooling exposes structured facts for agentic consumption could influence how you build your own systems.
- The project's own documentation frames Zero as "an experiment in building an agent-first programming language." The team identifies four core design goals that are worth understanding in depth: Agent-first learnability means the language surface is intentionally small and regular. Where traditional languages accumulate special cases and syntactic sugar over decades, Zero strives for one obvious way to do most things. For an AI agent encountering a codebase for the first time, this regularity means fewer surprises and more predictable parsing. Standard-library depth is the answer to the dependency problem. Instead of the typical Python/npm/Rust ecosystem pattern where you spend time searching for a library for every common task, Zero's stdlib covers filesystem I/O, process spawning, HTTP requests, memory operations, and more out of the box. The goal is for an agent to write a useful program without needing to navigate external package ecosystems. Deterministic tooling goes beyond just "fast compile times." Zero's CLI commands (check, run, graph, size, explain, skills) all emit structured JSON output that agents can parse reliably. The diagnostic system (zero explain) provides machine-readable explanations for error codes, not just human-readable messages. This is a critical distinction — structured output enables automated repair workflows. Regularity over syntax means code tends to be more explicit than a human might naturally write. The team explicitly embraces this tradeoff: agents don't benefit from syntactic sugar as much as humans do, and explicitness reduces ambiguity. The project is clear-eyed about its limitations: Zero is pre-1.0, security vulnerabilities should be expected, and it's explicitly not suitable for production systems or trusted infrastructure. This isn't modest understatement — the team means it. If you run or develop Zero, do so in an isolated, disposable environment.
- Autonomous code repair pipelines: Zero's structured diagnostic output makes it ideal as the target language for an AI coding agent that needs to understand, fix, and re-check code. Because zero check emits JSON with specific error codes (like PAR100 for parameter ordering violations or IMP001 for import errors), an agent can implement a fix loop with precise error tracking. The structured zero explain output means the agent knows why something failed, not just that it failed. AI agent CLI tools: The std.args and std.env modules make it straightforward to write command-line utilities that agents can invoke as subprocesses. The zero run command is fast enough for ad-hoc execution, and the zero skills get subcommand provides a mechanism for agents to fetch additional capabilities on demand. Structured data processing: Zero's capability system (layers 1-4 covering effect signatures, fine-grained capabilities, affine capabilities, and effect handlers) gives it a powerful type-level mechanism for tracking what side effects a piece of code can perform. For an agent orchestrating multiple data processing steps, this means the language can formally track which operations are allowed in which contexts — reducing the risk of unintended side effects in automated pipelines.
- Here's how to get ZeroLang running on your machine, based on the official docs but verified step-by-step: Step 1: Install Zero curl -fsSL https://zerolang.ai/install.sh | bash export PATH="$HOME/.zero/bin:$PATH" zero --version Step 2: Check your first program zero check examples/hello.0 Step 3: Run a simple program zero run examples/add.0 Expected output: math works Step 4: Inspect structured output (for agent use) zero graph --json examples/systems-package zero size --json examples/point.0 zero doctor --json Step 5: Fetch agent skills documentation zero skills get zero --full This is particularly useful for AI agents — it provides a structured dump of the language's capabilities that can be fed directly into a context window. The installation is refreshingly simple for a language in active development. The self-contained install script handles everything, and the zero doctor command gives you a quick sanity check if something goes wrong.
- 🚀 Structured JSON-first tooling: Every major CLI command (check, run, graph, size, explain, doctor) has a --json output mode that emits structured, machine-readable data. This is the core innovation — the language's tooling is designed for programmatic consumption first, making it ideal for AI agent pipelines. The diagnostic catalog covers specific error codes (PAR100, IMP001, NAM003, etc.) with machine-readable explanations. 🔒 Layered capability system: Zero implements a four-layer capability system for tracking and restricting side effects. Layer 1 handles effect signatures, Layer 2 adds fine-grained capabilities, Layer 3 introduces affine capabilities (ensuring capabilities aren't used more than once), and Layer 4 adds full effect handlers. This gives developers — and agents — fine-grained control over what operations a piece of code can perform, which is critical for safe autonomous execution. 📦 Batteries-included standard library: The std.* namespace covers filesystem operations, environment variables, argument parsing, process management, cryptographic operations, HTTP clients, and memory operations — all without external dependencies. The homepage at zerolang.ai provides the central documentation hub, and the library APIs are designed to be self-describing enough for agents to use them without extensive manual lookup.
- 📊 3,201 GitHub Stars | 📈 +~1,500 in the last 7 days (rapid early growth) | Created: 2026-05-15 | Open Issues: 72
- vs. DS4 (DeepSeek 4 Flash): DS4 focuses on running massive language models locally on consumer hardware — it's an inference runtime, not a programming language. Zero, by contrast, is about building the language and tooling that autonomous agents can use to write and execute code. Different layers of the stack, but both are pushing the boundary of what's possible in AI-native computing. vs. zero-native (same Vercel Labs family): zero-native is a related experiment in the same organization — it appears to explore zero-overhead abstractions for native code generation. While ZeroLang focuses on the language itself, zero-native seems to tackle the compilation/runtime side of the equation. They're complementary pieces of a larger vision around agent-native software development.
- The GitHub Issues page shows genuinely interesting technical discussions happening in real time. Here are three threads that stood out: 🔍 Issue #89 — "TOON instead of JSON" — 2 comments User steveberdy raised an interesting proposal: since Zero is designed for AI agents, would it make sense to adopt a more compact output format like TOON instead of JSON to save tokens at scale? The thread generated a thoughtful exchange about whether output format (a concern for AI consumption) should be the same as the language's own syntax (a concern for human readability during debugging). EdwardJoke pointed out that TOON lacks official C support, which is relevant since Zero compiles to C as an intermediate step. My take: this is exactly the kind of pragmatic AI-cost optimization discussion that will become more common as agents run millions of operations — the tradeoff between structured readability and token efficiency is real. 🔍 Issue #72 — "World capability design: ambient authority leaks" — 2 comments This is a deep PLT (programming language theory) critique. A contributor identified that Zero's World capability system — intended to be a capability-based access control mechanism — has "ambient authority leaks" where standard library functions like std.fs.writeBytes and std.env.get can be called directly without deriving their capability from the world parameter. The issue makes two independent points: (1) ambient authority bypasses the capability model in practice, and (2) the type system lacks the structural properties that capability-typed systems typically rely on. The team has engaged with this, and it reflects the kind of rigorous security scrutiny that a capability-based language should expect. 🔍 Issue #104 — "60-run frontier-model benchmark: 100% of Zero failures cluster on PAR100 and IMP001" — 3 comments This is perhaps the most consequential issue in the repo. A contributor ran 60 benchmark attempts (20 tasks × 3 OpenAI models: gpt-5, gpt-4o, gpt-4o-mini) using frontier models on Zero cold — meaning no in-context examples, just the zero skills get zero-language data. Result: 0% pass rate across all three models. Every failure fell into one of two diagnostic codes: PAR100 (parameter ordering) or IMP001 (import errors). Notably, the same models achieve 79-100% pass rates on Python, TypeScript, and Go for the same task corpus. A third-party validator (truffle-dev) independently confirmed the same pattern on their AgentLang benchmark. The IMP001 failures specifically come from models reaching for flat top-level imports (use std) instead of the correct qualified access pattern (std.mem.span). This is a fascinating finding: even the most capable frontier models struggle with Zero's import model, suggesting that "agent-first" is not just about JSON output — it requires rethinking fundamental language syntax decisions that humans find intuitive but models find alien.
- ⚠️ Don't use flat imports: The most common error in the benchmark data — IMP001 — comes from models trying to use use std like Python's import * or Rust's use at the top level. In Zero, you need to access standard library functions through their qualified paths: std.fs.writeBytes, std.args.get, std.env.get. If you're manually writing Zero code, always use qualified access. If you're building an agent that writes Zero code, make sure the agent's prompt explicitly teaches this pattern. ⚠️ Parameter ordering matters (PAR100): Zero enforces strict parameter ordering conventions that differ from most mainstream languages. Function calls that look semantically correct may fail with PAR100 if arguments are in the wrong order. The zero check command will tell you exactly which parameter is in the wrong position — use zero explain --json --all to get the full diagnostic catalog so your agent can understand and auto-fix these errors. ⚠️ Pre-production environment required: The project's documentation is explicit: do not run Zero in production or against sensitive data. The security model is still evolving, and the capability system's known ambient authority leaks (see Issue #72 above) mean you shouldn't trust it in untrusted contexts. Treat it as an experimental research environment — which, given that it was created 5 days ago, is entirely reasonable.
- ZeroLang is one of the most thought-provoking new projects in the AI-native software development space. It's not trying to be the best language for humans — it's asking a more interesting question: what does a language look like when AI agents are the primary user? The structured JSON tooling, capability-based effects system, and batteries-included standard library are all deliberate answers to that question. Whether Zero itself becomes widely adopted or its design patterns influence future languages, the experiment is already producing valuable data — the benchmark results showing frontier models struggling with Zero's import model are particularly illuminating for anyone building AI coding agents. The project is young and changing rapidly (it's pre-1.0 and makes no promises of stability), but the daily commit activity and active issue discussions suggest the Vercel Labs team is committed to iterating. For developers interested in the intersection of programming languages and AI, ZeroLang is a project to watch closely. 🔗 More GitHub trending open source projects: Developer Tools
When Vercel Labs released ZeroLang (also written as Zero or zero-lang), it wasn't just another programming language launch — it was a fundamental rethinking of who programming languages are for. Traditional languages assume human developers as the primary audience: they optimize for readability, ergonomics, and developer happiness. Zero flips that assumption entirely. It's a language built from day one for AI agents, with a syntax, standard library, and tooling designed to be learned, manipulated, and extended by autonomous code models. The project is young — created in mid-May 2026 — yet it already carries the weight of an interesting idea: what if the language itself was the agent's operating environment?
The project currently sits at 3,201 GitHub stars with 72 open issues and an active Apache 2.0 license. Its repository at vercel-labs/zerolang shows daily commit activity, and the team behind it has been publishing structured tooling outputs (JSON diagnostics, graph facts, size reports) specifically to make agentic interaction predictable. It's pre-1.0 software — the team is upfront about that — but it's already drawing serious attention from researchers benchmarking frontier AI models on coding tasks.
The most striking thing about ZeroLang isn't any single language feature — it's the philosophical bet the team is making. Traditional programming languages evolved over decades with human cognitive limits in mind. We got error messages that are friendly to humans, syntax that reads like English prose, and libraries that prioritize discoverability. Zero says: what if we optimized for a different kind of reader?
My personal take: this is one of the most intellectually honest experiments in the "AI-native language" space right now. There are plenty of projects that claim to be AI-friendly by just wrapping JSON APIs or adding an "AI mode" to an existing language. Zero goes deeper — it redesigns the fundamentals (how imports work, how errors are structured, how tooling exposes facts) with agent consumption as the primary constraint. The structured JSON output from zero check, zero graph, and zero size isn't an afterthought — it's the main interface. This means an AI agent can programmatically inspect, repair, and extend Zero code with the same reliability you'd expect from working with a well-defined API.
The standard library depth is another differentiator. Rather than encouraging developers to pull in third-party packages for common tasks, Zero bakes capabilities directly into std.*: filesystem operations (std.fs), environment access (std.env), argument parsing (std.args), process management (std.proc), and more. This "batteries included" philosophy reduces the dependency graph an agent needs to navigate. When most programs don't start with a dependency search, agents can act faster and with fewer failure modes.
If you're a developer building AI-powered coding assistants, autonomous agents, or code repair pipelines, ZeroLang is worth watching as both a potential target language and as a source of design patterns. Even if you don't adopt it, studying how its tooling exposes structured facts for agentic consumption could influence how you build your own systems.
The project's own documentation frames Zero as "an experiment in building an agent-first programming language." The team identifies four core design goals that are worth understanding in depth:
Agent-first learnability means the language surface is intentionally small and regular. Where traditional languages accumulate special cases and syntactic sugar over decades, Zero strives for one obvious way to do most things. For an AI agent encountering a codebase for the first time, this regularity means fewer surprises and more predictable parsing.
Standard-library depth is the answer to the dependency problem. Instead of the typical Python/npm/Rust ecosystem pattern where you spend time searching for a library for every common task, Zero's stdlib covers filesystem I/O, process spawning, HTTP requests, memory operations, and more out of the box. The goal is for an agent to write a useful program without needing to navigate external package ecosystems.
Deterministic tooling goes beyond just "fast compile times." Zero's CLI commands (check, run, graph, size, explain, skills) all emit structured JSON output that agents can parse reliably. The diagnostic system (zero explain) provides machine-readable explanations for error codes, not just human-readable messages. This is a critical distinction — structured output enables automated repair workflows.
Regularity over syntax means code tends to be more explicit than a human might naturally write. The team explicitly embraces this tradeoff: agents don't benefit from syntactic sugar as much as humans do, and explicitness reduces ambiguity.
The project is clear-eyed about its limitations: Zero is pre-1.0, security vulnerabilities should be expected, and it's explicitly not suitable for production systems or trusted infrastructure. This isn't modest understatement — the team means it. If you run or develop Zero, do so in an isolated, disposable environment.
Autonomous code repair pipelines: Zero's structured diagnostic output makes it ideal as the target language for an AI coding agent that needs to understand, fix, and re-check code. Because zero check emits JSON with specific error codes (like PAR100 for parameter ordering violations or IMP001 for import errors), an agent can implement a fix loop with precise error tracking. The structured zero explain output means the agent knows why something failed, not just that it failed.
AI agent CLI tools: The std.args and std.env modules make it straightforward to write command-line utilities that agents can invoke as subprocesses. The zero run command is fast enough for ad-hoc execution, and the zero skills get subcommand provides a mechanism for agents to fetch additional capabilities on demand.
Structured data processing: Zero's capability system (layers 1-4 covering effect signatures, fine-grained capabilities, affine capabilities, and effect handlers) gives it a powerful type-level mechanism for tracking what side effects a piece of code can perform. For an agent orchestrating multiple data processing steps, this means the language can formally track which operations are allowed in which contexts — reducing the risk of unintended side effects in automated pipelines.
Here's how to get ZeroLang running on your machine, based on the official docs but verified step-by-step:
Step 1: Install Zero
curl -fsSL https://zerolang.ai/install.sh | bash
export PATH="$HOME/.zero/bin:$PATH"
zero --version
Step 2: Check your first program
zero check examples/hello.0
Step 3: Run a simple program
zero run examples/add.0
Expected output: math works
Step 4: Inspect structured output (for agent use)
zero graph --json examples/systems-package
zero size --json examples/point.0
zero doctor --json
Step 5: Fetch agent skills documentation
zero skills get zero --full
This is particularly useful for AI agents — it provides a structured dump of the language's capabilities that can be fed directly into a context window.
The installation is refreshingly simple for a language in active development. The self-contained install script handles everything, and the zero doctor command gives you a quick sanity check if something goes wrong.
- 🚀 Structured JSON-first tooling: Every major CLI command (
check, run, graph, size, explain, doctor) has a --json output mode that emits structured, machine-readable data. This is the core innovation — the language's tooling is designed for programmatic consumption first, making it ideal for AI agent pipelines. The diagnostic catalog covers specific error codes (PAR100, IMP001, NAM003, etc.) with machine-readable explanations.
- 🔒 Layered capability system: Zero implements a four-layer capability system for tracking and restricting side effects. Layer 1 handles effect signatures, Layer 2 adds fine-grained capabilities, Layer 3 introduces affine capabilities (ensuring capabilities aren't used more than once), and Layer 4 adds full effect handlers. This gives developers — and agents — fine-grained control over what operations a piece of code can perform, which is critical for safe autonomous execution.
- 📦 Batteries-included standard library: The
std.* namespace covers filesystem operations, environment variables, argument parsing, process management, cryptographic operations, HTTP clients, and memory operations — all without external dependencies. The homepage at zerolang.ai provides the central documentation hub, and the library APIs are designed to be self-describing enough for agents to use them without extensive manual lookup.
check, run, graph, size, explain, doctor) has a --json output mode that emits structured, machine-readable data. This is the core innovation — the language's tooling is designed for programmatic consumption first, making it ideal for AI agent pipelines. The diagnostic catalog covers specific error codes (PAR100, IMP001, NAM003, etc.) with machine-readable explanations.std.* namespace covers filesystem operations, environment variables, argument parsing, process management, cryptographic operations, HTTP clients, and memory operations — all without external dependencies. The homepage at zerolang.ai provides the central documentation hub, and the library APIs are designed to be self-describing enough for agents to use them without extensive manual lookup.📊 3,201 GitHub Stars | 📈 +~1,500 in the last 7 days (rapid early growth) | Created: 2026-05-15 | Open Issues: 72
vs. DS4 (DeepSeek 4 Flash): DS4 focuses on running massive language models locally on consumer hardware — it's an inference runtime, not a programming language. Zero, by contrast, is about building the language and tooling that autonomous agents can use to write and execute code. Different layers of the stack, but both are pushing the boundary of what's possible in AI-native computing.
vs. zero-native (same Vercel Labs family): zero-native is a related experiment in the same organization — it appears to explore zero-overhead abstractions for native code generation. While ZeroLang focuses on the language itself, zero-native seems to tackle the compilation/runtime side of the equation. They're complementary pieces of a larger vision around agent-native software development.
The GitHub Issues page shows genuinely interesting technical discussions happening in real time. Here are three threads that stood out:
🔍 Issue #89 — "TOON instead of JSON" — 2 comments
User steveberdy raised an interesting proposal: since Zero is designed for AI agents, would it make sense to adopt a more compact output format like TOON instead of JSON to save tokens at scale? The thread generated a thoughtful exchange about whether output format (a concern for AI consumption) should be the same as the language's own syntax (a concern for human readability during debugging). EdwardJoke pointed out that TOON lacks official C support, which is relevant since Zero compiles to C as an intermediate step. My take: this is exactly the kind of pragmatic AI-cost optimization discussion that will become more common as agents run millions of operations — the tradeoff between structured readability and token efficiency is real.
🔍 Issue #72 — "World capability design: ambient authority leaks" — 2 comments
This is a deep PLT (programming language theory) critique. A contributor identified that Zero's World capability system — intended to be a capability-based access control mechanism — has "ambient authority leaks" where standard library functions like std.fs.writeBytes and std.env.get can be called directly without deriving their capability from the world parameter. The issue makes two independent points: (1) ambient authority bypasses the capability model in practice, and (2) the type system lacks the structural properties that capability-typed systems typically rely on. The team has engaged with this, and it reflects the kind of rigorous security scrutiny that a capability-based language should expect.
🔍 Issue #104 — "60-run frontier-model benchmark: 100% of Zero failures cluster on PAR100 and IMP001" — 3 comments
This is perhaps the most consequential issue in the repo. A contributor ran 60 benchmark attempts (20 tasks × 3 OpenAI models: gpt-5, gpt-4o, gpt-4o-mini) using frontier models on Zero cold — meaning no in-context examples, just the zero skills get zero-language data. Result: 0% pass rate across all three models. Every failure fell into one of two diagnostic codes: PAR100 (parameter ordering) or IMP001 (import errors). Notably, the same models achieve 79-100% pass rates on Python, TypeScript, and Go for the same task corpus. A third-party validator (truffle-dev) independently confirmed the same pattern on their AgentLang benchmark. The IMP001 failures specifically come from models reaching for flat top-level imports (use std) instead of the correct qualified access pattern (std.mem.span). This is a fascinating finding: even the most capable frontier models struggle with Zero's import model, suggesting that "agent-first" is not just about JSON output — it requires rethinking fundamental language syntax decisions that humans find intuitive but models find alien.
⚠️ Don't use flat imports: The most common error in the benchmark data — IMP001 — comes from models trying to use use std like Python's import * or Rust's use at the top level. In Zero, you need to access standard library functions through their qualified paths: std.fs.writeBytes, std.args.get, std.env.get. If you're manually writing Zero code, always use qualified access. If you're building an agent that writes Zero code, make sure the agent's prompt explicitly teaches this pattern.
⚠️ Parameter ordering matters (PAR100): Zero enforces strict parameter ordering conventions that differ from most mainstream languages. Function calls that look semantically correct may fail with PAR100 if arguments are in the wrong order. The zero check command will tell you exactly which parameter is in the wrong position — use zero explain --json --all to get the full diagnostic catalog so your agent can understand and auto-fix these errors.
⚠️ Pre-production environment required: The project's documentation is explicit: do not run Zero in production or against sensitive data. The security model is still evolving, and the capability system's known ambient authority leaks (see Issue #72 above) mean you shouldn't trust it in untrusted contexts. Treat it as an experimental research environment — which, given that it was created 5 days ago, is entirely reasonable.
ZeroLang is one of the most thought-provoking new projects in the AI-native software development space. It's not trying to be the best language for humans — it's asking a more interesting question: what does a language look like when AI agents are the primary user? The structured JSON tooling, capability-based effects system, and batteries-included standard library are all deliberate answers to that question. Whether Zero itself becomes widely adopted or its design patterns influence future languages, the experiment is already producing valuable data — the benchmark results showing frontier models struggling with Zero's import model are particularly illuminating for anyone building AI coding agents.
The project is young and changing rapidly (it's pre-1.0 and makes no promises of stability), but the daily commit activity and active issue discussions suggest the Vercel Labs team is committed to iterating. For developers interested in the intersection of programming languages and AI, ZeroLang is a project to watch closely.
🔗 More GitHub trending open source projects: Developer Tools