emulate
Local drop-in replacement services for CI and no-network sandboxes. Fully stateful, production-fidelity API emulation. Not mocks.
The programming language for agents. Zerolang is an experimental graph-native programming language where the semantic graph is the program database. Humans ask for outcomes. Agents query the graph, submit checked edits, and prove the result.
$ npx -y skills add vercel-labs/zero --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
What's inside
The programming language for agents.
Zerolang is an experimental graph-native programming language where the semantic graph is the program database. Humans ask for outcomes. Agents query the graph, submit checked edits, and prove the result.
Safety warning
Zerolang is experimental. Expect breaking changes, rough edges, and security issues. Run it in isolated workspaces, not against production systems or sensitive data.
The expected workflow is a normal conversation:
build hello world for zerolang
The agent should use the compiler, not guess from source text:
zero init
zero patch --op 'addMain' --op 'addCheckWrite fn="main" text="hello from zero\n"'
zero run
The result is still reviewable as a text projection:
pub fn main(world: World) -> Void raises {
check world.out.write("hello from zero\n")
}
That .0 file is a projection of zero.graph. Humans can read it, review it, and occasionally edit it. Agents should normally keep using zero query and zero patch.
Traditional agent coding loops treat text as the source of truth:
flowchart LR
A[agent writes text] --> B[check]
B --> C[format]
C --> D[build]
D --> E[inspect failures]
E --> A
Zerolang moves the agent closer to the compiler:
flowchart LR
A[agent queries graph] --> B[agent submits checked patch]
B --> C{compiler accepts?}
C -- invalid or stale --> A
C -- valid --> D[agent runs task validation]
D --> E[human reviews projection when useful]
The graph gives agents explicit handles: symbols, node IDs, graph hashes, types, effects, ownership facts, capabilities, imports, call edges, and target facts. Edits can target semantic structure instead of line ranges. Stale graph hashes, unexpected field values, invalid shapes, and type errors fail before the store is written.
zero.graph is the checked compiler input for graph-first packages..0 files are human-readable projections, not the normal agent authoring surface.zero patch applies checked graph edits and rejects stale or invalid changes.zero query, zero inspect, zero check, zero test, and zero run expose compiler facts through agent-friendly commands.zero import and zero export make the projection boundary explicit, so human text edits do not silently diverge from the graph.Install the compiler:
curl -fsSL https://zerolang.ai/install.sh | bash
export PATH="$HOME/.zero/bin:$PATH"
zero --version
Install the agent bootstrap skill:
npx skills add vercel-labs/zerolang
The compiler bundles version-matched skills for agents:
zero skills
zero skills get agent
zero skills get graph
zero skills get language
zero skills get stdlib
For most package work:
zero query
zero patch --op help
zero patch --op 'addMain'
zero check
zero test
zero run -- <args>
The default input is the current directory. Use . only when you want to be explicit.
When a human wants to review projection text:
zero export
zero verify-projection
When a human intentionally edits a projection:
zero import
zero check
The graph-first model should reduce agent guessing without relaxing the runtime goals:
Build the local compiler:
pnpm install
make -C native/zero-c
bin/zero --version
Useful checks:
pnpm run docs:build
pnpm run conformance
pnpm run native:test
pnpm run command-contracts
For local iteration:
pnpm run conformance:local -- --list
pnpm run conformance:local -- --shard 1/4
pnpm run command-contracts:local
Read the docs at zerolang.ai.
.gitattributes
.github/
workflows/
ci.yml
release.yml
.gitignore
.node-version
AGENTS.md
benchmarks/
rosetta/
100-doors.0
100-doors.graph
15-puzzle-solver.0
15-puzzle-solver.graph
24-game-solve.0
24-game-solve.graph
24-game.0
24-game.graph
4-rings-or-4-squares-puzzle.0
4-rings-or-4-squares-puzzle.graph
9-billion-names-of-god-the-integer.0
9-billion-names-of-god-the-integer.graph
99-bottles-of-beer.0
99-bottles-of-beer.graph
a-b.0
a-b.graph
abc-problem.0
abc-problem.graph
abelian-sandpile-model-identity.0
abelian-sandpile-model-identity.graph
abelian-sandpile-model.0
abelian-sandpile-model.graph
ackermann-function.0
ackermann-function.graph
aks-test-for-primes.0
aks-test-for-primes.graph
amicable-pairs.0
amicable-pairs.graph
animate-a-pendulum.0
animate-a-pendulum.graph
anti-primes.0
anti-primes.graph
arbitrary-precision-integers-included.0
arbitrary-precision-integers-included.graph
arithmetic-integer.0
arithmetic-integer.graph
array-concatenation.0
array-concatenation.graph
array-length.0
array-length.graph
arrays.0
arrays.graph
assertions.0
assertions.graph
babbage-problem.0
babbage-problem.graph
balanced-brackets.0
balanced-brackets.graph
base64-decode-data.0
base64-decode-data.graph
bifid-cipher.0
bifid-cipher.graph
binary-digits.0
binary-digits.graph
bitcoin-address-validation.0
bitcoin-address-validation.graph
bitmap.0
bitmap.graph
boolean-values.0
boolean-values.graph
box-the-compass.0
box-the-compass.graph
boyer-moore-string-search.0
boyer-moore-string-search.graph
caesar-cipher.0
caesar-cipher.graph
calculating-the-value-of-e.0
calculating-the-value-of-e.graph
call-a-foreign-language-function.0
call-a-foreign-language-function.graph
camel-case-and-snake-case.0
camel-case-and-snake-case.graph
canonicalize-cidr.0
canonicalize-cidr.graph
case-sensitivity-of-identifiers.0
case-sensitivity-of-identifiers.graph
catalan-numbers-pascals-triangle.0
catalan-numbers-pascals-triangle.graph
character-codes.0
character-codes.graph
cholesky-decomposition.0
cholesky-decomposition.graph
chowla-numbers.0
chowla-numbers.graph
circular-primes.0
circular-primes.graph
combinations-and-permutations.0
combinations-and-permutations.graph
comments.0
comments.graph
compiler-ast-interpreter.0
compiler-ast-interpreter.graph
compiler-code-generator.0
compiler-code-generator.graph
compiler-lexical-analyzer.0
compiler-lexical-analyzer.graph
compiler-syntax-analyzer.0
compiler-syntax-analyzer.graph
conditional-structures.0
conditional-structures.graph
convex-hull.0
convex-hull.graph
copy-a-string.0
copy-a-string.graph
count-in-octal.0
count-in-octal.graph
count-occurrences-of-a-substring.0
count-occurrences-of-a-substring.graph
crc-32.0
crc-32.graph
cusip.0
cusip.graph
cyclops-numbers.0
cyclops-numbers.graph
de-bruijn-sequences.0
de-bruijn-sequences.graph
deal-cards-for-freecell.0
deal-cards-for-freecell.graph
delete-a-file.0
delete-a-file.graph
department-numbers.0
department-numbers.graph
determinant-and-permanent.0
determinant-and-permanent.graph
determine-if-a-string-is-numeric.0
determine-if-a-string-is-numeric.graph
dijkstras-algorithm.0
dijkstras-algorithm.graph
draw-a-sphere.0
draw-a-sphere.graph
eertree.0
eertree.graph
egyptian-division.0
egyptian-division.graph
elliptic-curve-arithmetic.0
elliptic-curve-arithmetic.graph
empty-string.0
empty-string.graph
entropy.0
entropy.graph
ethiopian-multiplication.0
ethiopian-multiplication.graph
eulers-sum-of-powers-conjecture.0
eulers-sum-of-powers-conjecture.graph
evaluate-binomial-coefficients.0
evaluate-binomial-coefficients.graph
exceptions.0
exceptions.graph
execute-a-markov-algorithm.0
execute-a-markov-algorithm.graph
extensible-prime-generator.0
extensible-prime-generator.graph
factorial.0
factorial.graph
factors-of-an-integer.0
factors-of-an-integer.graph
farey-sequence.0
farey-sequence.graph
fibonacci-sequence.0
fibonacci-sequence.graph
fibonacci-word.0
fibonacci-word.graph
file-input-output.0
file-input-output.graph
find-limit-of-recursion.0
find-limit-of-recursion.graph
fizzbuzz.0
fizzbuzz.graph
floyd-warshall-algorithm.0
floyd-warshall-algorithm.graph
function-definition.0
function-definition.graph
generate-lower-case-ascii-alphabet.0
generate-lower-case-ascii-alphabet.graph
gray-code.0
gray-code.graph
greatest-common-divisor.0
greatest-common-divisor.graph
happy-numbers.0
happy-numbers.graph
haversine-formula.0
haversine-formula.graph
hello-world-newline-omission.0
hello-world-newline-omission.graph
hello-world-standard-error.0
hello-world-standard-error.graph
hello-world-text.0
hello-world-text.graph
huffman-coding.0
huffman-coding.graph
integer-sequence.0
integer-sequence.graph
introspection.0
introspection.graph
jaro-similarity.0
jaro-similarity.graph
k-d-tree.0
k-d-tree.graph
knapsack-problem-0-1.0
knapsack-problem-0-1.graph
knights-tour.0
knights-tour.graph
leap-year.0
leap-year.graph
levenshtein-distance.0
levenshtein-distance.graph
loops-downward-for.0
loops-downward-for.graph
loops-for-with-a-specified-step.0
loops-for-with-a-specified-step.graph
loops-for.0
loops-for.graph
loops-foreach.0
loops-foreach.graph
loops-nested.0
loops-nested.graph
loops-while.0
loops-while.graph
lucas-lehmer-test.0
lucas-lehmer-test.graph
lzw-compression.0
lzw-compression.graph
m-bius-function.0
m-bius-function.graph
main-step-of-gost-28147-89.0
main-step-of-gost-28147-89.graph
manifest.json
matrix-exponentiation-operator.0
matrix-exponentiation-operator.graph
modular-arithmetic.0
modular-arithmetic.graph
modular-inverse.0
modular-inverse.graph
monty-hall-problem.0
monty-hall-problem.graph
move-to-front-algorithm.0
move-to-front-algorithm.graph
mutual-recursion.0
mutual-recursion.graph
natural-sorting.0
natural-sorting.graph
parametric-polymorphism.0
parametric-polymorphism.graph
parse-an-ip-address.0
parse-an-ip-address.graph
parsing-shunting-yard-algorithm.0
parsing-shunting-yard-algorithm.graph
pells-equation.0
pells-equation.graph
perfect-numbers.0
perfect-numbers.graph
perlin-noise.0
perlin-noise.graph
permutations-by-swapping.0
permutations-by-swapping.graph
program-name.0
program-name.graph
quine.0
quine.graph
README.md
repeat-a-string.0
repeat-a-string.graph
reverse-a-string.0
reverse-a-string.graph
rot-13.0
rot-13.graph
run-length-encoding.0
run-length-encoding.graph
self-describing-numbers.0
self-describing-numbers.graph
sha-1.0
sha-1.graph
show-ascii-table.0
show-ascii-table.graph
sierpinski-triangle.0
sierpinski-triangle.graph
sieve-of-eratosthenes.0
sieve-of-eratosthenes.graph
singly-linked-list-element-definition.0
singly-linked-list-element-definition.graph
sleep.0
sleep.graph
stern-brocot-sequence.0
stern-brocot-sequence.graph
strassens-algorithm.0
strassens-algorithm.graph
string-case.0
string-case.graph
string-concatenation.0
string-concatenation.graph
string-length.0
string-length.graph
sum-and-product-of-an-array.0
sum-and-product-of-an-array.graph
sum-multiples-of-3-and-5.0
sum-multiples-of-3-and-5.graph
sum-of-a-series.0
sum-of-a-series.graph
sutherland-hodgman-polygon-clipping.0
sutherland-hodgman-polygon-clipping.graph
tarjan.0
tarjan.graph
thue-morse.0
thue-morse.graph
tokenize-a-string.0
tokenize-a-string.graph
towers-of-hanoi.0
towers-of-hanoi.graph
zero-to-the-zero-power.0
zero-to-the-zero-power.graph
zero/
add.0
add.graph
arena.0
arena.graph
baseline-hello.0
baseline-hello.graph
branches.0
branches.graph
buffers.0
buffers.graph
codec.0
codec.graph
fallibility.0
fallibility.graph
fileio.0
fileio.graph
fs-resource.0
fs-resource.graph
hello.0
hello.graph
json.0
json.graph
mem-copy-fill.0
mem-copy-fill.graph
module-package/
src/
main.0
math.0
text.0
zero.graph
zero.toml
networking.0
networking.graph
owned-file.0
owned-file.graph
params.0
params.graph
parse.0
parse.graph
parser.0
parser.graph
readall.0
readall.graph
rescue.0
rescue.graph
slices.0
slices.graph
structs.0
structs.graph
zero-hash.0
zero-hash.graph
bin/
zero
CHANGELOG.md
conformance/
agent-surface/
classification.json
fixtures/
direct-generic-recursion.0
direct-generic-recursion.graph
direct-generic-specialization-name-collision.0
direct-generic-specialization-name-collision.graph
interface-method-generic-binding.0
interface-method-generic-binding.graph
owned-drop-direct-backend-unsupported.0
owned-drop-direct-backend-unsupported.graph
c/
host-leak-package/
src/
main.0
zero.graph
zero.toml
old-style.h
simple.h
target-conditional.h
unsupported.h
check/
pass/
array-assignment.0
... 1442 moreLocal drop-in replacement services for CI and no-network sandboxes. Fully stateful, production-fidelity API emulation. Not mocks.
Browser automation CLI for AI agents. Fast native Rust CLI.
The Generative UI framework. Generate dynamic, personalized UIs from prompts without sacrificing reliability. Predefined components and actions for safe, predictable output.
FAQ
zerolang is a Claude Code plugin with 1 hand-picked skill for development work, indexed on Flowy. Install it with the command on its page. It includes zero. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.