André Amnc788 downloadsZen Mode, typewriter scrolling, focus fade, paragraph rhythm and offline style checks for creative writing. Optional local-model assistant.
Write novels, short stories and screenplays in Obsidian with nothing between you and the sentence. A distraction-free zen mode, typewriter scrolling, focus fade, sentence rhythm, offline prose style checks, daily word-count goals, and a story map of your characters and places — all built from your own notes, all offline.
Everything that touches the page lives in the editor. Everything about the work — progress, readability, the cast, the shape of the story — lives in panels that Zen Mode hides.
One command hides the ribbon, tabs, sidebars and status bar (optionally fullscreen). Typewriter scrolling keeps the line you're writing centred; focus fade veils the rest of its paragraph slightly and farther paragraphs progressively by distance. A faint band marks the current line.
Toggle Zen Mode · Settings → Writing → Typewriter scrolling / Focus fade / Current line
Each sentence of the current paragraph sits on a faint tint, cool → warm by its felt length, so you see monotony before you hear it; in Zen Mode the tint leaves the text for a meter in the margin. Style checks tint clichés, passive voice, filter verbs, adverbs, repetition, nominalisations, weak verbs and metaphor candidates; hover for the note. Rules, a part-of-speech tagger and concreteness norms — no network, no model required.
Settings → Writing → Paragraph rhythm · Settings → Lenses (the style checks are one lens; every kind is a chip)
A lens is a reading pass: it colours every open note one way at a time, so a tint always means one thing. Style checks is one lens. Dialogue is another: speech and thought tinted, narration dimmed, by the conventions of the project (double or single quotes or dash lines; a sentence or paragraph in italics as a thought), and with a cast each line takes its speaker's colour when a dialogue tag, a name in the paragraph or your own pin says who spoke. A grey line is a guess: hover it and a box offers the cast, and a click pins the speaker as a hidden %% Name %% comment. Accents is a third: inside each speaker's own lines, the words their character note says they use and never say. Words is a fourth: your own overused words from a note of your own (Creative Writer/Bad words.md, one heading per category), tinted by category wherever they occur, a project able to keep its own list with bad-words: in its project note. Every hover card can act, too: Not a cliché here, Remove "then" from Stage direction, a word into a character's accent. The status bar shows the lens and opens a menu of the others on a click; every lens is a command under the Lens: prefix. Zen Mode shows no lens.
Settings → Lenses
One graph of a project. Characters, places and things are nodes (typed notes — type: character in front matter or a Characters/ folder — plus recurring unnamed names as candidates you can turn into notes with one click). Three layers of edges: links you wrote, scenes shared, and references a local model reads between the lines. Pan, zoom, drag, pin, search, tune the forces. Rebuilt from your notes every time; only model readings persist, in a Story map.md inside the project so it syncs with the manuscript.
Open story map or the ribbon icon
Every scene in reading order down the side, your threads across the top, and in each cell what the thread is doing in the scene: the spreadsheet Rowling drew, grown out of the story timeline. Columns are the ## headings of Story threads.md, typed as an arc, a theme or a subplot; a cell's edge says whether its stop is a plan, verified against the prose, or broken. The cast folds into one column of dots and spreads back out on a click.
Open plot grid
The manuscript as one line and everything that ties one part of it to another as an arc over it: the threads you draw by hand in Story threads.md (a clue, a motif, a promise with its plant: and payoff:), the facts a local model read from each scene, and the echoes an offline finder hears across the book, a phrase reached for once too often or a sentence rewritten two scenes later. Two scenes that state a different value for the same fact are joined by a red arc; the card says whether it is a slip or a reversal the story means, and keeps the reversal as a thread of yours.
Open story threads
Every prose note of a project stitched into one read-only page in reading order, with the folder tree as its outline: Part One/03 Chapter Three.md reads as Part One › Chapter Three, sort prefixes stripped, the note's own scene headings nested underneath. Select a paragraph and the editor follows; press Enter or double-click and you are in the editor at that sentence. Arrow keys walk the paragraphs, Alt+arrows the chapters. Characters, places, research and outlines stay off the page; typing in a chapter beside it redraws that chapter alone. A pane beside the page holds the selected paragraph's %% comments %%, colour-coded by tag, and one field: type CHECK: was it a coat?, press Enter, and the comment lands at the end of that paragraph in the note. Every comment of the draft is listed in reading order; hover a marked paragraph for its comments. The tag word is tinted in the editor too. A ruler at the top shows the shape of the book, a segment per section coloured by readability and underlined when it changed today; switch the story on and each section carries its cast in the map's colours, with the model's contradictions as red marks in the gutter; switch the voices on and each sentence of speech takes its speaker's colour, with the same speaker box as the editor, so a whole book can be proof-read and pinned in one pass. Nothing is stored; Export writes the page as one note beside the project when you want a file to send on.
Open manuscript or the ribbon icon · Settings → Manuscript
A board of what you are made of. Tag any note #writer/theme, #writer/archetype, #writer/poem, #writer/premise… and it becomes a card inside the groups of a framework: Truby's wish list, premises, inspirations, references and voices by default, a Generic set, or your own. Every group is always drawn, with a hint while it is empty, so the structure teaches what to collect. Drag a card into another group and its tag follows. Layout lives in one Writer.writer file; the cards are your notes. Nothing on it is ever exported or sent to a model.
Open writer or the ribbon icon · Copy writer schema puts the protocol on the clipboard for a tool migrating a board into your vault
Words added and cut today against a daily goal, a streak, this week's total and a 12-week heatmap — revision days count as work. Add writing-target: 50000 (and writing-deadline: 2026-10-31) to any note and its folder becomes a project with words-per-day needed vs. your last-7-day pace and a projected finish date. The desk also shows the note's reading ease, grade level, sentence rhythm and dialogue share, and a clickable scene outline. History lives in a vault note so it syncs between machines.
Open writing desk · click the readability band in the status bar
If Ollama is running on your machine, the plugin can read a paragraph for contextual findings (clichés in context, tired metaphors, passives hiding an agent), a selection for mythic patterns and archetypes, a chapter for relationships, references and the facts it states, the book for the sentences that say the same thing twice, or a plot grid column for what a thread is doing in each scene. Nothing leaves your computer, and nothing runs unless you ask. Every claim must quote the page, or it is dropped. The offline rules beat a local 7B at every mechanical check (eval results), which is why the model is a second opinion, not the default. Claude can be chosen instead for the paragraph findings and the plot grid, with an API key of your own and a daily spending cap; the story readings stay local.
Analyse paragraph with model · Analyse selection for myth and archetype · Read this note with model (story map)
Declared projects are always in. Beyond that, choose: every note, listed folders, notes marked creative-writer: true, or nothing. A note's own front matter always wins. Two commands toggle the plugin everywhere or for the current note.
Community plugins: Settings → Community plugins → Browse → search Creative Writer → Install, Enable.
Beta via BRAT: add amancioandre/creative-writer.
Desktop only; editing mode (Source and Live Preview). Reading view is untouched.
Install Harper alongside — it is the intended companion. Harper is a free, offline grammar and spelling checker; Creative Writer deliberately leaves spelling, grammar, punctuation and filler words to it. Harper edits the sentence, Creative Writer edits the prose. Their marks overlap cleanly: Harper underlines, Creative Writer tints.
No network requests. The only exception is the optional model assistant, which talks to the Ollama address you configure (default localhost), or to Anthropic's API if you choose Claude and give it a key. Progress, story readings and the plot grid's readings are stored as plain Markdown notes in your vault.
After you install the plugin, and once after each minor update, it shows a short note about what changed with a link to a feedback form hosted on Tally. The note is built into the plugin: nothing is fetched, nothing is sent unless you open the link, and the link carries nothing about you or your vault. Turn it off under Settings → Where it runs → Release notes; Show release note in the command palette brings it back.
How is this different from Longform? Longform organises scenes into a manuscript and compiles it to a file. Creative Writer works on the prose inside the scenes and on the story as a graph; its manuscript page is for reading the draft whole, and its export is one plain note, not a build pipeline. They coexist happily; Longform projects are read as ordinary folders.
Does it work on mobile? Not yet — Zen Mode and the editor decorations are desktop-only.
Does it need an AI? No. Everything except the model assistant is deterministic and offline.
Creative Writer is free and MIT-licensed, built in evenings around a day job. If it has made your writing sessions better, you can keep the coffee coming:
Bug reports and ideas: GitHub issues. Two minutes on how it is going for you: the feedback form. News of the Creative Suite, roughly one letter per release: the newsletter on Substack. Full documentation: amancioandre.github.io/creative-writer.
Build, test, evaluation corpus and the Clean Architecture layout are in docs/development. Short version: npm install && npm run build, npm test.
Part-of-speech tagging by compromise (MIT). Concreteness norms from Brysbaert, Warriner & Kuperman (2014), CC-BY 4.0.