Skip to content
All projects

Muxwriter

A desktop screenwriting app whose AI collaborator reads your actual script. It pulls in earlier scenes on its own and proposes edits as diffs you accept or reject, so it never overwrites your words behind your back.

TypeScriptTauriRustFountain

I write screenplays. The tools for that split into two camps: formatters that get the margins right and know nothing about your story, and chat windows that will happily discuss your story while having never read it.

Muxwriter is the attempt to put both in one window without letting the second one damage the first.

The constraint that shaped everything

An AI collaborator never silently changes your words.

Every edit the partner proposes renders as a diff in the editor, and it stays a proposal until you accept or reject it. There is no path where you look back at a scene and find a sentence you did not write.

That sounds like a UI preference. It is the reason the rest of the architecture looks the way it does, because a tool that can only suggest has to be much better at knowing what is going on than a tool that can rewrite. If it cannot overwrite its way out of being wrong, it has to be right about context.

Three tiers of context

A screenplay runs longer than a comfortable prompt, and the parts that matter for scene 40 are scattered across the previous thirty-nine.

So context comes in three layers. A persistent story bible holds what stays true across the script. A compressed scene history carries the shape of what has happened. The current scene goes in whole.

On top of that the partner fetches its own context with two tools, search_script and get_scene, rather than being handed a fixed window. When it refers to something it cites the scene, and the citation is a link that jumps you there. You can check it, which matters more than it being right.

Selection and mentions

Highlight a line and ask about that line. Type @Scene 14 or @Maya to pull a scene or a character into the conversation.

Both exist because the alternative is describing your own script back to a thing that is holding your script. That is the failure mode of generic chat assistants applied to a document, and it is tiring in a way that stops you using the tool.

Local first, bring your own key

Scripts are plain text .muxw files on your machine, and they diff cleanly in git. There is no backend server. AI calls go straight from the app to whichever provider you configure, using your own API key, stored locally.

For unpublished creative work that is the only arrangement I would trust, and I would rather not ask a writer to trust me either.

Built on Tauri

Fountain markup renders on a cream script page in Courier Prime with a live page count doubling as a runtime estimate, since a screenplay page runs about a minute. Export goes to a screenplay-accurate PDF at 12pt with correct margins, and the brainstorm transcript exports to Markdown.

Tauri rather than Electron for the size and the startup time. A writing tool that takes four seconds to open is a writing tool you open less.