You do not have to say it properly. Type it the way you would say it out loud. Spelling mistakes are fine. What comes back is a plan, in plain sentences, that you read and argue with before anything gets built.
Everything shown below is the real thing running. So is this page — a program in the same workshop made it.
What this is
A box you type into, and a gatekeeper behind it
You write what you want the way you would say it. Underneath, the words are checked, the job is written out, and a machine is asked only the part that needs asking.
Type it the way you would say it, typos and all. What comes back is a user story and acceptance criteria you can argue with. The models on offer include ones that run on your own machine, and the sentence you actually wrote is kept beside the rewritten one.
Every connection the system has been told about, and what lives on each one. The page states its own rule at the top: a datasource is a row, so routing is a query rather than a setting somebody remembers.Work is named in sentences, not ticket numbers. Each row carries how many acceptance criteria it has and whether the story is draft or ready, so the state of the work is readable at a glance.Exactly what a model was shown, kept and inspectable afterwards, with the rule that selected it. When something was only previewed, the page says so rather than implying it ran.
How it works
From a sentence to work somebody can check
Three steps. Nothing is built until you have read the plan and said yes.
1It asks, in plain words, until the shape is complete. Each answer adds one strand to the canvas, and the last question is always the one about why — a chain that produces a file but cannot say what it is for does not get to close.
2The conversation becomes a sprint with criteria that are rows, not prose. Each one starts UNSATISFIED and has to be satisfied by something nameable. Nothing is approved until a person clicks approve.
3The drawings are rendered from the requirement rows, so they cannot drift from what was agreed. The page names its own open questions rather than smoothing them over — what is still undecided is written down as undecided.
Why it is different
There is a gatekeeper in the middle of all this. It is called imp. It sits between you and the machine. The machine can suggest. The imp decides what gets through. The machine never writes anything down on its own.
Every important word means one thing. Most teams use the same word for two different things and nobody notices until something breaks. Here each one has an agreed meaning, written down — 252 of them so far. Use one wrongly and the tools stop you. A wrong name is worse than no name, because the machine believes it.
Your private work stays on your machine. Papers are broken into shapes on your own computer first. If something is private, only a machine on your own desk may look at it. We keep a record of exactly what was sent, every time, so did anything private leave this building is a question with a real answer.
It gets cheaper the longer you use it. Most tools charge more the more you use them, so they are glad when you use more. This one works the other way round. Anything that happens twice becomes a small program, and programs are free to run. The machine is only asked about something genuinely new.
Built out of parts that already work
A machine told to write software from nothing writes something that looks right. Give it parts that already work, with honest names and clear edges, and it builds something that runs.
The library is 445 of those parts, all in Rust, built and tested over years. One part knows about money. One knows about people and companies. One knows about places, one about calendars, one about keeping an unalterable record of what happened. They are stacked in layers, and a part may only lean on the layers beneath it, never sideways and never up.
445parts in the library
865,878lines of Rust
12,866tests
252agreed words
Every number was counted on 2026-09-18, and the command that counted it is written down beside it. See what they count.
Why it is all written in Rust
Rust is a fussy language. It refuses to build your program if certain kinds of mistake are in it — not a warning you can ignore, a refusal. Most languages would let those through and you would find out later, when a customer did.
That fussiness matters far more when a machine is doing the typing. A machine writes plausible code very fast. The compiler reads every line of it before any human does, and throws out a whole class of mistake for free — no test run, no review, nothing to pay for. It is the cheapest checker in the building and it never gets tired.
It can hold rules that are not about programming at all. In one of these products, a supplier's licence says their sales figures may never be shown to an AI. Rather than write that down and hope, the pricing function is built so those figures cannot be handed to it — the wrong sort of thing simply will not fit. A promise to a lawyer, kept by a compiler.
Technical stack
The machines, and what is true of each right now. Most of them run FreeBSD. Every one carries its own certificate with an issue and an expiry date, so trust between them is something with a date on it rather than a password somebody shared.
Rust. Every line of it — the library, the tools, the websites, the thing that made this page. One language, compiled, no runtime to install and nothing to interpret.
FreeBSD Unix. The servers run FreeBSD. Each job gets its own jail — a walled-off piece of the machine, with its own filesystem and its own address — so the database, the test runner and the front door cannot tread on each other. Unix has had forty years to get this part right.
PostgreSQL. Everything that matters is a row: the work, the words, the decisions, the record of what was asked and what came back. The database refuses bad data at the door rather than trusting the program that sent it.
Models you can choose. Hosted ones when the work is ordinary, and ones running on your own machine when it is not. Which one is allowed depends on what the job is carrying.
The jobs the fleet knows how to do, each one a sealed bundle with a hash. A machine is not told to run a script somebody pasted; it is handed a named thing whose contents can be checked against what was published.
One machine, divided into jails. Each has one job and its own address, so a mutation run that goes berserk cannot reach the database that holds the record, and the box facing the internet holds no working copy of anything.
one FreeBSD machine
┌──────────────────────────────────────────────────────────┐
│ │
│ ┌───────────┐ ┌───────────┐ ┌──────────────────┐ │
│ │ pg01 │ │ imp │ │ rfw │ │
│ │ the │ │ console │ │ the checkout │ │
│ │ record │◄──┤ chat │──►│ and the │ │
│ │ │ │ dispatch │ │ toolchain │ │
│ └───────────┘ └───────────┘ └──────────────────┘ │
│ ▲ │
│ │ read only ┌──────────────────┐ │
│ └────────────────────────┤ mutants │ │
│ │ breaks things │ │
│ ┌───────────┐ │ on purpose │ │
│ │ mutants_pg│◄─────────────────┤ │ │
│ │ throwaway │ writes here └──────────────────┘ │
│ │ in memory │ and nowhere else │
│ └───────────┘ │
└──────────────────────────────────────────────────────────┘
What happens when you ask for something
The same shape, written out. Note where the line is: a model is handed a bounded thing and hands back a suggestion. It never reaches past the imp.
you, in ordinary words
│
▼
┌─────────────────────────────────────────┐
│ imp │
│ · keeps exactly what you wrote │
│ · rewrites it in agreed words │
│ · works out what is actually needed │
└─────────────────────────────────────────┘
│
├──────────────► already a program? ──► done, costs nothing
│
├──────────────► private material? ──► a model on your own desk
│
└──────────────► genuinely new? ──► a hosted model
│
▼
┌─────────────────────────────────────────┐
│ imp again, on the way back │
│ · is this the shape we asked for? │
│ · does it use the agreed words? │
│ · record what was sent and returned │
└─────────────────────────────────────────┘
│
▼
a person approves then it is written down
Why an imp
The little devil on the corner of an old Unix manual page has been there for forty years, reminding everyone that the thing doing the work in the background is small, horned, and not very sorry. An imp does what it is told, inside a line somebody drew. That is the whole idea — and it is why the drawing came before the sales pitch.
How to start
Write in plain words about what is broken, or what you want to exist. No specification needed — working one out is the first piece of work, and it is the part you buy first. Start a conversation.