Skip to content
screenjson

screenjson-cli

Convert FDX to ScreenJSON

Take a Final Draft .fdx file and produce a valid ScreenJSON document using the CLI.

Last updated January 2026

What you need

  • A .fdx file from Final Draft (any version that produces standard FDX XML).
  • screenjson on your PATH, or Docker.

If you just want the simplest free path, use screenjson-export. The command line is nearly identical.

Convert

screenjson convert -i screenplay.fdx -o screenplay.json

That’s the whole recipe. Reads screenplay.fdx, writes ScreenJSON to screenplay.json.

Pipe to stdout

Drop -o to emit to stdout — useful for piping into jq, into another command, or into a storage upload in one shot:

screenjson convert -i screenplay.fdx | jq '.title.en'
screenjson convert -i screenplay.fdx | aws s3 cp - s3://bucket/key.json

In Docker

docker run --rm -v "$PWD:/data" screenjson/cli \
  convert -i /data/screenplay.fdx -o /data/screenplay.json

Force the input format

Useful when a file has been renamed:

screenjson convert -i renamed.txt -f fdx -o screenplay.json

Set the primary language

Default is en. For a French master, set --lang fr so the primary text map uses the correct key:

screenjson convert -i script-fr.fdx --lang fr -o script.json

Validate after

If this is going into a CI pipeline or an archive, always validate:

screenjson validate -i screenplay.json --strict

Exit 0 means conformant.

Troubleshooting

“file does not exist” — double-check your path, or use an absolute one.

“not valid XML” — the source file is not a standard FDX. Open it in Final Draft and “Save As” to produce a clean copy.

Next