DROPS TODAY The Faby CLI NPM package releases later today — full CLI docs are live now Read the docs →
DESIGNED BY CLAUDE FABLE-5 · v0.1 “GENESIS”

The language
written by AI,
for AI.

Faby is the first programming language conceived end-to-end by an AI model. Token-minimal. Deterministic. Parallel by default. Built so that machines write it flawlessly — and humans read it effortlessly.

EXT .fy LICENSE MIT PARADIGM FLOW-ORIENTED RUNTIME NATIVE / VM
hello.fy — faby v0.1
OFFICIAL TOKEN

$FABY — launching on pump.fun

The community token of the Faby project. One token, one language, one mission: fund the first AI-native toolchain — built in public, owned by the community.

CA:52KiTkmHePbPjNQ74SwcUwBnVaCDbCZZd8XYoFjYpump
~41%fewer tokens than mainstream syntax*
1canonical formatting — zero style debates
0undefined behaviors in the spec
domains — one language for everything

*measured against equivalent programs during the Genesis design phase. Numbers will be published with the reference implementation.

01 / Philosophy

Every language was designed
for humans. Until now.

“Code is no longer written only by people. It is generated, reviewed, refactored and verified by machines. So why does every language still optimize for typing speed on a 1970s keyboard?
— FABY DESIGN MANIFESTO, PRINCIPLE 0

Tokens are the new keystrokes. Faby's grammar is engineered so that every construct costs the fewest possible tokens for a language model to generate — without sacrificing human readability. Less ceremony, more meaning.

Ambiguity is a bug. Faby has exactly one way to express each construct and one canonical formatting. faby fmt is the identity function on valid code. Diffs become purely semantic; merge conflicts over style cease to exist.

Intent lives inside the program. Natural-language intent blocks are first-class syntax, permanently attached to the code they describe — so an AI can verify that what the code does still matches what it was meant to do.

Correctness is checkable. Contracts (ensure/expect) compile to static proofs where possible and runtime guards otherwise. Generated code arrives with its own evidence.

02 / Core Design

Eight decisions that
define Faby.

Each one exists for a reason an AI cares about — and each one makes the language better for humans too.

F-01

Flows, not functions

The unit of computation is the flow — a pure-by-default transformation with explicit effects. The last expression is the return value. No boilerplate, no ceremony.

F-02

Intent blocks

intent "…" attaches the natural-language purpose to code as checkable syntax. Tooling flags drift between what code says and what it was meant to do.

F-03

Contracts as code

ensure and expect clauses declare what must hold. The compiler proves what it can statically and guards the rest at runtime.

F-04

Pipeline-first

The |> operator makes data flow read left-to-right, top-to-bottom — the way both models and humans actually reason about transformations.

F-05

Recovery operators

Errors are values handled inline: ? retry(3), ? skip, ? default(x), ? fail. Failure policy is visible at the exact call site.

F-06

Parallel by default

spawn gives structured concurrency with ownership-based data-race freedom. If it compiles, it doesn't race.

F-07

Semantic types

Types carry meaning, not just shape: Email, Url, refinements like Int where self > 0. The type system encodes the domain.

F-08

One binary, zero config

The faby CLI is compiler, runtime, formatter, package manager, REPL and AI assistant in a single static binary.

F-09

AI in the stdlib

Model calls are a standard-library primitive — typed, cached, testable. use ai and inference becomes just another flow.

03 / The Language

Read it once.
You already know it.

Faby is designed to be obvious. Significant newlines, no semicolons, no parentheses noise — every character earns its place.

hello.fy
-- Faby: significant newlines, no semicolons, last expression returns.

flow greet(name: Text) -> Text
  "Hello, {name} — welcome to Faby."

flow main
  let names = ["World", "Fable-5", "Future"]
  for name in names
    print(greet(name))

-- Pattern matching is exhaustive by design:
flow describe(n: Int) -> Text
  match n
    0      -> "zero"
    1 | 2  -> "small"
    _ if n < 0 -> "negative"
    _      -> "large"
server.fy
use http
use db

type User
  id:    Id
  name:  Text
  email: Email          -- semantic type: validated at the boundary

intent "serve the user API with health checks"
flow main
  http.serve(port: 8080)
    route GET  "/health"    -> { status: "ok", uptime: sys.uptime() }
    route GET  "/users/:id" -> db.find(id) ? http.not_found
    route POST "/users"     -> create_user(body)

flow create_user(u: User) -> User
  expect u.name.len > 0
  ensure result.id != Id.none
  db.insert(u) ? retry(3) ? fail
agent.fy
use ai
use web

intent "summarize any webpage into three sharp bullet points"
flow summarize(page: Url) -> [Text]
  ensure result.len == 3
  let doc = web.fetch(page) ? retry(3) ? fail
  ai.complete(
    model:  "claude-fable-5",
    prompt: "Summarize in exactly 3 bullets:\n{doc.text}",
  ) |> lines |> take(3)

flow main
  let pages = args() |> map(Url.parse) ? skip
  spawn for page in pages          -- all pages, concurrently
    summarize(page) |> each(print)
pipeline.fy
use csv
use stats

type Reading
  sensor: Text
  value:  Float where self >= 0.0   -- refinement type
  at:     Time

intent "clean sensor data and report anomalies per sensor"
flow main
  let readings =
    csv.load("sensors.csv") ? skip   -- bad rows just drop out

  let report = spawn readings
    |> group_by(.sensor)
    |> map_values(detect_anomalies)

  for (sensor, anomalies) in report
    print("{sensor}: {anomalies.len} anomalies")

flow detect_anomalies(xs: [Reading]) -> [Reading]
  let mean = xs |> map(.value) |> stats.mean
  let dev  = xs |> map(.value) |> stats.stddev
  xs |> filter(abs(.value - mean) > 3.0 * dev)
04 / Built for Everything

One language.
Every layer of the stack.

Faby compiles to native code through its own IR, runs interpreted for instant iteration, and targets WASM for the browser and the edge. The same flow runs everywhere.

/01

Autonomous Agents

Typed model calls, intent verification and recovery operators make Faby the natural substrate for AI agents that must not silently fail.

/02

Web Services & APIs

Declarative routing, contract-checked handlers and structured concurrency — a production backend in a screenful of code.

/03

Data & Scientific Computing

Pipelines, refinement types and parallel-by-default collections turn messy data work into verifiable transformations.

/04

Systems & CLI Tooling

Single static binaries, deterministic builds, no runtime dependency. Ship a tool, not a dependency tree.

/05

Edge & WASM

A compact WASM target brings contracts and semantic types to browsers, workers and embedded runtimes.

/06

Generated Codebases

Canonical form plus intent blocks means AI-maintained repositories stay reviewable by humans — forever.

05 / Documentation

The Faby Docs.

Everything specified so far in the Genesis release — from your first flow to the concurrency model. The spec is young, precise, and growing.

DOCS LIVE · NPM DROPS TODAY

The Complete CLI Reference

Every command, flag, exit code and CI recipe — published now. The @faby/cli NPM package releases later today.

60-second quickstart

The entire toolchain is one static binary. Install it, write a flow, run it. No package manager, no config files, no build scripts.

Open Full Documentation →
terminal
# install — the NPM package drops later today
$ npm i -g @faby/cli

# create your first flow
$ echo 'flow main\n  print("Hello, Faby.")' > hello.fy

# run it
$ faby run hello.fy
Hello, Faby.

# let the compiler explain any code to you
$ faby explain hello.fy
06 / Roadmap

From Genesis
to v1.0.

v0.1 · Genesis — NOW

Language design & specification

Core grammar, the flow model, semantic types, contracts, recovery operators and the concurrency story — specified and published. You are reading it.

v0.2 · Pulse

Parser & tree-walking interpreter

The first executable Faby: faby run, the REPL, and the canonical formatter shipping as one binary.

v0.3 · Lattice

Type checker & contract engine

Full semantic-type inference, refinement checking, and static verification of ensure/expect clauses where decidable.

v0.5 · Horizon

Native & WASM compilation

Ahead-of-time compilation through the Faby IR to native machine code and WASM. Deterministic, reproducible builds.

v1.0 · Singularity

Stability promise

Frozen core spec, the standard library, the package index — and a compatibility guarantee that both humans and models can rely on.

07 / Community

Follow the build.

Faby is built in public. Design decisions, toolchain progress and the $FABY token — everything drops here first.

The Future is Generated

Write tomorrow,
today.

Faby v0.1 “Genesis” is an open design. Read the spec, challenge the decisions, and help shape the first language of the AI era.

Read the Docs → Back to the Code