What this tool is, where it came from, and the handful of rules it refuses to break.
Three things, stacked. Underneath is a script editor that behaves the way Final Draft behaves — the same seventeen element types, the same Return-to and Tab-to flow, real page sheets, scene numbers in both margins. It imports FDX, Fountain, PDF, Celtx, Fade In and StudioBinder, and exports back out to Final Draft, Fountain and PDF. If you have muscle memory, it will work.
Around it is a binder, borrowed from Scrivener: acts, sequences and scenes in a left rail; index cards you can drag; an outliner with synopsis, length, cast, label and status in one grid. Not all of Scrivener — only the parts the engine actually reads.
On top is the part that doesn't exist anywhere else: an engine that has read 107 produced screenplays and a shelf of craft writing, and that keeps track of who your characters are, what they know, and when they stop sounding like themselves.
It is not an assistant. An assistant takes instruction, and on a screenplay you do not yet know what you want — that is the job. It is closer to a room: people who have read the thing, who remember the draft before this one, who are quiet while you work and argue when you stop.
The tool was specified before it was built, in three documents written from the writer's side of the desk rather than the engineer's. They are deliberately literary and they argue with each other — two of them are staged as a disagreement between the Talker, who believes a scene is an argument, and the Architect, who believes a scene is a consequence. Both have won awards. Neither is right, and where they disagreed the tool builds for the tension instead of picking a side.
Alongside them sits the corpus: 107 produced screenplays, run through a local pipeline that extracts structure and statistics and nothing else. Page counts, scene counts, how much of the word count is dialogue, how concentrated the locations are, and a thirteen-metric voice fingerprint per character.
It holds derived numbers. It holds no screenplay text — no dialogue, no scene descriptions, not a line. The PDFs never left the machine they were read on, and there is an automated test that fails the build if any long string ever appears in the shipped data. The corpus can tell you how stories of a shape are built. It cannot tell you what anybody said, and the tool will not pretend it can.
The numbers matter because they replace opinion with a range. When the tool says your cast is starting to sound alike, it can say 2.02 against a produced-feature median of 2.93, and the tenth percentile is 2.03 — a number you can argue with. That was the point of measuring 107 rather than a dozen.
It argues for the harder version, at volume, and then hands the pen back. If you ask for a direction it will give you one — grounded in your own pages, in your voice and the character's, telling you what it keyed off — but as something to react against, never as copy to paste, and never written into the document. There is no insert button.
No underlines, no margin marks, no notification, no helpful pulse in the corner of your eye. Nothing in the tool renders a judgment while you are typing. Every diagnostic waits for you to ask.
If a scene does nothing it says so and says why. When a pass finds nothing it tells you what it checked and that nothing fired — it does not tell you the script is good, because it has no way to know that. Anything that could be replaced with "looks good!" without losing information is treated as a bug.
One click, no confirmation, and the refusal is not stored as a preference. A tool that reshapes itself around what you reject becomes an echo, and you already have one of those.
Your script is sent to the model only when you ask a question, and it is never stored on a server between requests. Nothing you write trains anything.
| Surface | What it does |
|---|---|
| Page | The script, stitched continuously. Where you write. Nothing floats over it. |
| Cards | One index card per scene. Type in a card to write its synopsis — that one line is what the engine reads instead of the whole scene. Drag to move the scene itself. |
| Outline | Synopsis, length, word count, label, status and cast in one grid. The fastest way to fill in what the engine runs on. |
| Analyze | The pass. Reads the whole script and reports — worst first. Deterministic: counts, regex and distances, no model, under a tenth of a second. |
| Write | Composition mode. The page and nothing else — no binder, no world pane, no flags, no room. The line you are on holds its place and the page moves under it. When you leave, and only then, it tells you what it noticed. |
| X-ray | The whole script in one picture — scene lengths, who is on screen across the whole film, where each scene happens, and where the audience stands against the cast. Every mark opens the scene it was counted from. |
| The world | The right-hand pane. Follows your cursor and shows what is true at this point: who is in the scene, what they want, their arc state as of here, what they don't know yet, what this location has seen before. |
| The room | A drawer, bottom right, closed until you click it. Five grounding questions and a free-form ask, about the scene you're in. |
| Mumble | The mic button just above the room, or ⌘'. Somewhere to put the half-sentence you can't use yet — typed, or spoken and transcribed. Kept in your words and handed back only when you return to where you left it. |
Click any name anywhere — in the world pane, on a card, in the outliner — and you get their dossier: Compass (want, need, the lie they believe, the ghost, the contradiction), Arc (states over scene ranges, with the current one marked as of your cursor), Knows (what they learn and in which scene), and Voice (the measured fingerprint).
Every field can be written by you or proposed by the engine reading your pages. A proposal renders dashed and badged until you accept or rewrite it. Your decisions never look like the machine's guesses — the moment those two are indistinguishable you lose track of what you actually decided.
Once a dossier is filled in, it stops being reference and becomes a check. The pass will tell you when a character references something before the scene they learn it, when they speak in stretches your arc doesn't cover, and when two independent register tells move together against the voice baseline you locked. Only what you confirmed is ever enforced — an unaccepted proposal is the engine's guess, and enforcing a guess would be the tool marking its own homework.
Each scene also carries a second track: per character, what they want in this scene and what they are hiding. Two people discuss a lease and one of them is dying — on the transcript that reads slow, and it isn't slow, it's loaded.
And from the knowledge gates you keep, the tool plots the information gap: for every scene, whether the audience is ahead of the character (irony), the character is ahead of the audience (a withheld card), or you're level. It is a readout, not a verdict. A script can run level for fifty pages on purpose.
A version of a scene is saved on its own, at the moments something is about to change your pages — before a replace-all rewrites lines, before the room drafts a synopsis over a blank one, and when you leave a writing run, for the scenes you actually touched. There is a button too, but you should not need it. Most tools make you remember to take a snapshot, which is why most people have none when they want one.
When a scene has versions, the world pane says so, and See what changed shows the difference word by word: struck through for what went, brighter for what is there now. The alignment is exact rather than guessed, because every block in your script has carried a permanent id since the first line of it was written — a moved speech reads as moved, not as a deletion and an unrelated insertion.
A diff shows what changed. It does not say whether it improved. Nothing is green because it is better; green is only what is there now.
⌘F, or click the field in the top bar. It searches the words you wrote — sluglines, action, dialogue, parentheticals, your synopses, and scenes you have cut. Results come up as you type, grouped by scene, each showing the line and who says it. ↓ ↑ move through them, ⏎ goes there, and every match is lit on the page with the one you are on brighter.
When what you typed is ambiguous it offers the alternatives with counts rather than making
you know a syntax — type clara and you can have the word in the pages, or the 53 scenes
she is in. The old scene filters all still work if you learned them:
with:CLARA, loc:, label:, status:,
kw:, stale, nosynopsis.
Replace is the only thing in this tool that writes into your pages. So it tells you exactly how many it will change before it does, it leaves your synopses and cut scenes alone, and one step of undo is always kept. Italics and bold survive a replacement; a word broken across formatting is neither found nor changed, which is deliberate — a search that misses something is a limit, but a replace that misses one is a corruption.
When the x-ray finds the same people in the same place more than once, that row has a side by side button. It opens exactly those scenes next to each other, scrolling independently, and highlights nothing. Two scenes can do the same thing twice on purpose — putting them next to each other is a question, and answering it is yours.
Write, or ⌘⇧F. Everything goes except the page. No binder, no world pane, no flag dots, no Analyze, no room. The line you are on stays where it is and the page moves underneath it; everything more than a few lines away fades back so you can feel the shape of the page without reading it. Esc leaves. ⌘. hides the word count if a number in the corner is the wrong kind of company.
The mumble panel is the one thing that stays, because it is the only surface here that never speaks first and it exists for exactly this — the half-sentence you cannot use yet.
The tool keeps working and says nothing. It checks as you write and holds all of it until you stop, then tells you once: how long, how many words, which scenes, and anything it noticed — a name that spoke for the first time, a scene that has grown past everything else around it. Those are facts, not verdicts. And the checks run on your machine: nothing is sent anywhere while you are writing, which is what makes the silence real rather than a promise about tone.
The synopsis on a card is the highest-leverage thing in the document — it is what the engine reads instead of the pages, and several checks stay quiet without one. If you import a script with none, the board offers to draft them.
It drafts eight, not eighty. A first batch is a sample you judge, and cheap to throw away. Anything it writes stays visibly not yours — dashed, italic, marked proposed — until you tick it or type over it, and the room is told which lines are its own guesses so it never quotes its own homework back to you as though you had written it.
Your corrections are the instruction. Rewrite two of the eight and those two become the example for the rest; the register comes from you, not from the corpus. Stopping costs nothing — everything you confirmed stays, and one click clears the rest. It never touches a scene that already has a synopsis, and it never writes into your pages.
A hundred and ten pages will not fit in your head at once. This is the whole thing as one picture: a lane per principal showing every scene they are in, a tone per location so a place you keep returning to is visible as a place you keep returning to, scene lengths, and where the audience is ahead of the cast or behind them. Bianca vanishing for forty pages is something you see rather than something you are told.
Every lane is a count, and none of it is a verdict. There is no tension curve and there will not be one — nobody can measure tension, and a line that dips at page sixty sends you to fix a page that was quiet on purpose. What you get instead are facts you can check: this room holds seven scenes, these two are back to back, the audience has known since scene twelve. What that means is your call.
Two of those lanes compare you to the 104 produced screenplays behind the tool. Locations per hundred scenes, how much of the film sits in your three most-used places, how often a scene picks up where the last one left off. It reports where you sit and the range everyone else sits in, and then stops — a film set in one house is not a fault.
Switch between the whole map and facts only, or turn any lane off. Facts only drops everything drawn with a height, on the grounds that a row of bars reads as a curve whether or not anything curves.
Most of writing happens in the nine seconds before you type anything, and most tools have nowhere to put that. This does. Hit the mic and say the thing you can't use yet — the ridge scene wants to end on her not answering — or type it. Spoken fragments are transcribed and sorted into three: what sounds like your own dialogue, what sounds like a note to yourself, and what sounds like a thought about the script. The first can be dropped into the page. The others just sit there.
Nothing you leave is ever pushed at you. Open the panel near where you left it and what you left near here is waiting — inside a neighbourhood that scales with the length of your script, roughly a tenth of it either side. It reaches into the graveyard too, because a fragment attached to a scene you later cut is exactly the one worth getting back.
Above page one, at the same width. Type on it directly rather than filling in a form — a title page is a document someone else reads, and the conventions are easier to hit by looking at the page than by filling in fields and hoping. It collapses to a strip when you're not working on it. Removing it takes it out of your exports without throwing away what you typed.
Nothing you cut is destroyed. A deleted scene is kept with its text, cast, date and a space for why you cut it. It is never handed back to you unasked — a graveyard that relitigates your decisions makes you stop cutting, and a writer who won't cut is finished. It's there when you go looking.
A tool that cries wolf twice in the first session is dead, and no amount of later accuracy revives it. So every rule is tested against all 107 produced screenplays before it is allowed to fire. Any rule that flags more than one in ten produced features is retuned or cut.
0.57 flags per produced screenplay, across the whole rule set. The gate is three.
That discipline caught a real error before you ever saw it. One rule — the one that tells you your cast is converging — had been set at the corpus 25th percentile. A percentile used as a threshold is its own false-positive rate: it fired on 30% of produced features by construction. Five rules were retuned. The median and the quartiles are still shown to you as context; they are never used as triggers.
Every finding carries the number it came from, so you can inspect it and disagree. A judgment that can't be traced back to something you can check doesn't render at all.
The rule that separates a measurement from a verdict
The corpus skews recent, prestige and awards-season. Dialogue is only 37% of words at its median, which is low, because that set is unusually visual. Bands derived from it will read a competent genre script as underwritten. Every corpus number in the interface says so where it appears. Treat them as a range you're inside or outside of, never as a target.