The format
Stagistic syntax
A plain-text format for theatrical plays and musicals. You can draft a whole script in any text editor and import it — or read what the editor writes out. It is rooted in Fountain, but it speaks theatre: acts and scenes, spoken and sung, stage directions, and music.
The guiding rule is implicit where it reads naturally, explicit only where ambiguity would otherwise hurt. Most of what you write needs no markup at all.
01 The core idea
Two things decide what every line is: where it sits and its letter case. A blank line ends a speech, so the parser knows whether it is waiting for a new character or reading the lines under one.
- Right after a blank line, an UPPERCASE line is a character cue.
- Inside a speech, an UPPERCASE line is lyrics (sung); a normal-case line is dialogue (spoken).
- A line in normal case at the start of a block is a stage direction.
So ANNA on its own line after a blank line is a cue, while PASS ME THE SUGAR inside a speech is a lyric — identical casing, the position decides. To shout, use bold (**Stop!**); caps inside a speech always mean singing.
To make an uppercase line a stage direction, force it with !.
02 Frontmatter
Optional. If the file opens with a --- line, everything up to the next --- is a YAML metadata block. The script begins after it.
The supported fields mirror the title page: title, subtitle, credits, source, draftDate, contact, and copyright. A credit always contains an authors list, even for one author. Draft dates use YYYY-MM-DD.
You type
---
title: When Night Falls
subtitle: A musical in two acts
credits:
- credit: Book
authors:
- Jane Smith
- credit: Music
authors:
- Peter Gray
- credit: Lyrics
authors:
- Jane Smith
- Alex Green
source: Based on the novel by Sam Gray
draftDate: 2026-07-01
contact: jane@example.com
copyright: © 2026 Jane Smith
--- 03 Acts & scenes
Markdown-style headings: # is an act, ## is a scene. The text after the marker is free — location, time, anything; the editor handles numbering.
Scenes are the base unit; acts are an optional layer above. If a script has no ## anywhere, a # is treated as a scene — so a one-act play just uses # per scene.
You type
# Act One ## 1 — A garden. Dusk.
Renders as
Act One
1 — A garden. Dusk.
04 Character cues & dialogue
A character cue is the name in caps on its own line; the lines below it, up to the next blank line, are that character's speech.
You type
PETER (from the doorway) Sorry I'm late. ANNA It's fine. I was waiting.
Renders as
PETER
(from the doorway)
Sorry I'm late.
ANNA
It's fine. I was waiting.
For two characters speaking or singing the same words at once, join the names with / (spaces optional). The shared content follows once.
You type
ANNA / PETER AND THE WORLD WILL STOP
As a convenience the parser also accepts inline dialogue — NAME: text on one line — but the editor always writes it back out stacked, with the cue on its own line.
You type
JANE: I told you already.
05 Asides
A short parenthetical delivery note inside a speech — (quietly), (to himself). It can sit on the name line, on its own line under the cue, or between lines, and may appear more than once in a speech.
You type
ANNA (quietly) You shouldn't have come. (she turns away) Not tonight.
Renders as
ANNA
(quietly)
You shouldn't have come.
(she turns away)
Not tonight.
A (...) line at the start of a block — not inside a speech — is a parenthetical stage direction instead. Position tells them apart.
06 Lyrics
Inside a speech, an uppercase line is sung. Set the section level with leading tabs: no tab is the A-section, one tab the B-section, two the C-section, and so on.
You type
ANNA WHEN NIGHT FALLS AND THE LIGHTS GO DOWN AND I'LL BE STANDING HERE
Renders as
ANNA
WHEN NIGHT FALLS AND THE LIGHTS GO DOWN
AND I'LL BE STANDING HERE
07 Soft breaks
A real blank line ends a speech. For a breathing gap inside one — between verses of a song, or in a long spoken passage — use a ~ alone on its line. It adds the gap without starting a new character.
You type
PETER FIRST LINE OF THE SONG SECOND LINE OF THE SONG ~ A LATER LINE — STILL PETER, NOT A NEW CHARACTER
08 Stage directions
Any normal-case line at the start of a block is a stage direction. To mark the character performing the action, tag them with @ — it is capitalised and linked to the cast. Only the actor is tagged, never the recipient, so it is always explicit.
You type
Anna stands at the window. @Peter enters quietly from behind.
Renders as
Anna stands at the window. PETER enters quietly from behind.
The force prefix also resolves a tag-only stage direction. @MICHAEL alone is a forced character cue; !@MICHAEL is a stage direction containing one character tag. Write !! to preserve a literal leading exclamation point.
Forced stage directions
!ALL LIGHTS SNAP OUT !@MICHAEL
Inside a speech there is no implicit form for a stage direction — normal case is always dialogue, UPPERCASE is always lyrics — so !text is the only way to write one there. Like a soft break, it does not end the speech.
You type
MICHAEL !He pauses, listening. AND THEN HE SINGS AGAIN
09 Music
A music item marks a song or instrumental passage for actors and directors. Write it inline inside a stage direction: @@music N "title" to start it and @@out N to end it. The number ties the two together. With no @@out, the music runs to the end of the scene.
You type
The lights slowly fade. @@music 1 "When Night Falls" ANNA WHEN NIGHT FALLS AND THE LIGHTS GO DOWN The lights come up. @@out 1
Renders as
The lights slowly fade. ♪ 1 — When Night Falls
ANNA
WHEN NIGHT FALLS AND THE LIGHTS GO DOWN
The lights come up. ♪ out 1
10 The quoting rule
Double quotes delimit a literal name or title anywhere a space, period, or special character (@, /) would otherwise break parsing. A bare @Name tags only one word — once a name has a space or a dot, quote it.
Inside quotes, use \" for a literal double quote and \\ for a literal backslash.
You type
"Mrs. Washington" @"Mrs. Washington" @@music 1 "She Said \"Yes\""
11 Inline marks & notes
Emphasis carries over from Fountain: *italic*, **bold**, _underline_. A note in [[ double brackets ]] is for you only — it never prints.
You type
*italic* **bold** _underline_ [[ a note to self — never printed ]]
Renders as
italic bold underline
(the note is not printed)
12 A full example
Everything together: frontmatter, an act and scene, a stage direction with a tagged character, spoken dialogue, a sung number bracketed by music markers, unison singing, and an author note.
You type
---
title: When Night Falls
credits:
- credit: Book
authors:
- Jane Smith
- credit: Music
authors:
- Peter Gray
draftDate: 2026-07-01
---
# Act One
## 1 — A garden. Dusk.
Anna stands at the window. @Peter enters quietly from behind.
PETER
(from the doorway)
Sorry I'm late.
ANNA
It's fine. I was waiting.
The lights slowly fade. @@music 1 "When Night Falls"
ANNA
WHEN NIGHT FALLS AND THE LIGHTS GO DOWN
AND I'LL BE STANDING HERE
PETER
SO I'LL COME CLOSER
ANNA / PETER
AND THE WORLD WILL STOP
The lights come up. @@out 1
[[ still need to reconsider the transition into scene 2 ]] Renders as
Act One
1 — A garden. Dusk.
Anna stands at the window. PETER enters quietly from behind.
PETER
(from the doorway)
Sorry I'm late.
ANNA
It's fine. I was waiting.
The lights slowly fade. ♪ 1 — When Night Falls
ANNA
WHEN NIGHT FALLS AND THE LIGHTS GO DOWN
AND I'LL BE STANDING HERE
PETER
SO I'LL COME CLOSER
ANNA / PETER
AND THE WORLD WILL STOP
The lights come up. ♪ out 1
13 Marker reference
The complete set of explicit markers. Everything else is implicit, by position and letter case.
--- … --- Frontmatter block (file start) !text Forced stage direction (block start: tie-breaker; in a speech: only way) # / ## Act / scene @name Forced character cue (at the start of a block) @Name / @"Name" Character tag (inside a stage direction) / Unison separator on a cue line @@music N "title" / @@out N Music — start / end (...) Aside (in a speech) or parenthetical stage direction (at block start) [[ ... ]] Author note (never printed) * ** _ Italic / bold / underline leading tab(s) Lyric section level ~ (alone on a line) Soft break — empty in-speech block, no cue reset "..." Literal name or title (the quoting rule)