Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Command-line reference

coldopen comes with the app on every system (see Install). Every subcommand sends the same commands the app does, so a script is changed the same way from here as from the window. coldopen --version prints the version and commit, and coldopen help <subcommand> prints a subcommand’s help.

SubcommandWhat it does
convertConvert a script to Fountain, .fdx or JSON.
repairRepair a damaged .fdx file into a new one, and print what was repaired. The input is never written.
exportExport a script as a PDF.
pagesPrint the pages of a script as plain text, the way they print.
reportPrint a report: scenes, characters or locations.
diffCompare two drafts, in any of the three formats, scene by scene. Prints a summary; exits 0 whether or not they differ.
scenesList the scenes in a script.
runRun a batch of commands from a JSON file (an array of requests, or one request per line). Prints one response per line.
licensesPrint the licenses of Cold Open and of the fonts it bundles.
benchMeasure every speed and memory budget on this computer and write a small report to send back. Runs the desktop app installed beside this command; takes about two minutes, during which its windows come and go.
serveRead JSON requests on standard input, one per line, and answer each on standard output.
mcpServe the Model Context Protocol on standard input and output, so an AI agent can read and edit scripts. When the Cold Open app has the script open, the agent’s edits go into the app, live and undoable.

coldopen convert

Convert a script to Fountain, .fdx or JSON.

coldopen convert [OPTIONS] <INPUT> <OUTPUT>
ArgumentWhat it does
<INPUT>The script to read (.fountain, .spmd, .txt or .fdx)
<OUTPUT>Where to write, or - for standard output.
--to <TO>Output format. Defaults to the output file’s extension, or Fountain. One of fountain, fdx, json.
--allow-lossyWrite even if the format cannot hold everything in the script.

coldopen repair

Repair a damaged .fdx file into a new one, and print what was repaired. The input is never written.

coldopen repair [OPTIONS] <INPUT> <OUTPUT>
ArgumentWhat it does
<INPUT>The .fdx file to repair.
<OUTPUT>Where to write the repaired copy (.fdx)
--jsonPrint the report as JSON.
--report <REPORT>Also write the report to this file.

coldopen export

Export a script as a PDF.

coldopen export [OPTIONS] <INPUT> <OUTPUT>
ArgumentWhat it does
<INPUT>The script to read (.fountain, .spmd, .txt or .fdx)
<OUTPUT>The PDF to write.
--watermark <WATERMARK>Print this text diagonally across every page.
--scene-numbersPrint scene numbers beside the scene headings.
--no-title-pageLeave out the title page.

coldopen pages

Print the pages of a script as plain text, the way they print.

coldopen pages <FILE>
ArgumentWhat it does
<FILE>The script to read.

coldopen report

Print a report: scenes, characters or locations.

coldopen report [OPTIONS] <KIND> <FILE>
ArgumentWhat it does
<KIND>Which report. One of scenes, characters, locations.
<FILE>The script to read.
--format <FORMAT>Text for people, the command’s JSON, or CSV (RFC 4180) One of text, json, csv. Default: text.

coldopen diff

Compare two drafts, in any of the three formats, scene by scene. Prints a summary; exits 0 whether or not they differ.

coldopen diff [OPTIONS] <A> <B>
ArgumentWhat it does
<A>The first draft.
<B>The second draft.
--jsonPrint the comparison as JSON.
--pdf <PDF>Also write the second draft with the changes marked to this PDF.
--overwriteReplace the PDF if it exists.

coldopen scenes

List the scenes in a script.

coldopen scenes [OPTIONS] <FILE>
ArgumentWhat it does
<FILE>The script to read.
--jsonPrint the raw scene.list result as JSON.

coldopen run

Run a batch of commands from a JSON file (an array of requests, or one request per line). Prints one response per line.

coldopen run [OPTIONS] <EDITS>
ArgumentWhat it does
<EDITS>The file of command requests, or - for standard input.
--doc <DOC>Open this script before running the commands.
--saveSave the script after the commands succeed.
--keep-goingKeep going after a command fails.
--author <AUTHOR>The name your tracked changes carry (default “Writer”)

coldopen licenses

Print the licenses of Cold Open and of the fonts it bundles.

coldopen licenses

coldopen bench

Measure every speed and memory budget on this computer and write a small report to send back. Runs the desktop app installed beside this command; takes about two minutes, during which its windows come and go.

coldopen bench [OPTIONS]
ArgumentWhat it does
--out <OUT>Where to write the report (default: your Downloads folder)
--quickFewer repetitions, for a quick check; not for judging budgets.

coldopen serve

Read JSON requests on standard input, one per line, and answer each on standard output.

coldopen serve [OPTIONS]
ArgumentWhat it does
--stdioUse standard input and output (the only transport so far)
--author <AUTHOR>The name your tracked changes carry (default “Writer”)

coldopen mcp

Serve the Model Context Protocol on standard input and output, so an AI agent can read and edit scripts. When the Cold Open app has the script open, the agent’s edits go into the app, live and undoable.

coldopen mcp [OPTIONS]
ArgumentWhat it does
--doc <DOC>A script to open, or attach to, before the first request.
--no-attachNever attach to the app; always open the file in this process.
--untrackedDo not record the agent’s edits as tracked changes in scripts this server opens itself. When the script is open in the app, the app’s setting decides.