Answer
ScriptCraft is a free, open-source screenwriting app for people who write films, TV and plays. You type, and Enter and Tab pick the screenplay format for you. It lays out standard script pages, saves Final Draft or Fountain files and exports PDF. It is working software, not a plan.
- It follows the Final Draft way of typing: Enter after a scene heading gives Action, Tab gives a Character, Enter after a Character gives Dialogue.1
- Pages use the US industry layout: Letter, 12-point Courier, (MORE) and (CONT'D) when dialogue breaks across pages.2
- It opens and saves
.fdxand.fountainfiles and exports PDF, so a script can move to and from other tools.2 - Its own checklist counts 62 of 68 Final Draft 13 features as implemented; 6 are not done yet.3
Applies toScriptCraft at commit d7f6b76 (v0.4 done)desktop app on macOS, Windows, Linux, plus a browser buildFinal Draft behaviour taken from public documentation, not checked against Final Draft 13 yet
What does a writer do, step by step?
Diagram structure
- Open or start a script
open - Type with Enter and Tab
type - See real pages
pages - Rearrange scenes
organize - Check reports
reports - Save or export
save open→typeorganize→reportspages→organizereports→savetype→pages· formats
- Open or start a script
Start blank, from a template (feature, TV single-camera, multi-camera, stage play), or open an existing
.fdxor.fountainfile. The app ships with an original sample, Night Signal. - Type with Enter and Tab
Type
int. diner - night, press Enter for Action, Tab for a Character, Enter for Dialogue. Headings and names capitalise themselves; SmartType offers names and locations already used. - See real pages
The page view shows Letter pages in Courier with page numbers, (MORE) and (CONT'D). The status bar shows the element, page, scene and word count.
- Rearrange scenes
The Navigator lists scenes; index cards hold a summary per scene and can be dragged to reorder; an Outline view, story map and beat board help plan structure.
- Check reports
Character, scene and location reports come from the same pagination as the PDF.
- Save or export
Save as Final Draft (
.fdx) or Fountain, or export a PDF with embedded Courier Prime. Autosave and backups keep work safe.
One scene, typed for real
These are the keys from the README's own example, run through scriptcraft-cli run on the clone. Each row shows the element the app chose.4
| You type or press | ScriptCraft makes it |
|---|---|
int. diner - night | Scene Heading: INT. DINER - NIGHT |
Enter, then Rain on the glass. | Action |
Tab, then margo | Character: MARGO |
Enter, then Coffee? | Dialogue |
The same run saved this Fountain file and a one-page PDF:
textINT. DINER - NIGHT
Rain on the glass.
MARGO
Coffee?What does it look like?
What goes in, and what comes out?
| Goes in | Comes out | |
|---|---|---|
| Files | .fdx (Final Draft XML) or .fountain | .fdx, .fountain, PDF |
| Writing | Your typing, keys and menu choices | Formatted pages with scene numbers and a title page |
| Planning | Scene summaries, colours, tags, beats | Navigator, index cards, outline, story map |
| Numbers | The script itself | Reports: speeches and words per character, scene lengths in eighths, locations |
| Production | Revision mode, locked pages, tags | Coloured revision pages, A/B pages, breakdown reports |
For the sample Night Signal, scriptcraft-cli report prints 4 pages, 4 scenes and 699 words; NELL has 12 speeches.4
How finished is it?
- Stage
- v0.4 (structure and collaboration) done; v0.2 and v0.3 done
- Final Draft 13 checklist
- 62 implemented · 0 partial · 6 not yet (of 68)
- Runs on
- macOS, Windows, Linux (desktop) and in a browser (WebAssembly)
- Licence
- MIT OR Apache-2.0; clean-room, no Final Draft code or assets
Who else can drive it?
Every action is a command with an id, and the same commands drive the menus, keyboard, a command-line tool, a JSON control channel and an MCP server. The CLI lists 185 engine commands. So a script, a test or an AI agent can write, convert and report on screenplays without the window.2
bashgit clone https://github.com/NoJuanNobody/scriptcraft && cd scriptcraft
cargo run --release -p scriptcraft # opens the sample script
cargo run --release -p scriptcraft -- --new # blank script