A fiction-writing app that runs entirely on your own machine, stores your work as plain files you can read without it, and treats AI as an optional tool you point at your prose — not a service you rent.
No account. No subscription. No sync. Nothing phones home.
Free and open source (MIT) · Windows, macOS, and Linux · Read the guides
Writing software has drifted into rented access to your own work — stop paying and you're locked out. This is a program you run. If the project were abandoned tomorrow, the copy on your disk keeps working, and the license lets anyone pick it up.
Scenes and lore are Markdown with YAML front matter; settings are a handful of YAML files. You can read, grep, diff, and version-control a project without this app. With a local model via Ollama, even the AI runs with the network switched off.
No "write my novel" button. The model gets context you authored — lore, scenes, outline — through prompts you wrote and can read. You pick the provider and model per task, see the token cost of every call, and the permission model fails closed.
Acts, chapters, and scenes — or whatever levels you name — with drag-reordering. Scenes are Markdown files behind a WYSIWYG editor; point of view and tense set on a chapter carry down to its scenes.
Characters, places, and anything else — typed entries with fields, tags, references, and backlinks. Mutation sets let a fact change partway through the story, with a timeline showing the effective state at any point.
Plotlines and cards laid out against the manuscript, so structure is something you can see and rearrange, not just imagine. Decks and templates give you a starting shape.
Every list is backed by a small set-algebra query — union, intersection, filters, relational nesting over lore links — authored in a drag-and-drop designer, with parameters, grouping, and trees.
Model world / series / book levels purely by folder depth: a book inherits the layers it declares, nearer ones override farther ones, and node types, fields, and inheritance are authored in-app.
Anthropic, OpenAI, OpenRouter, or local models via Ollama. A built-in library of prompts — Draft scene, Continue, line edits, brainstorms — that are Jinja2 templates you can read and clone. Lore is fitted to a budget you set, and every call's token cost rolls up to a project total.
A lore check pins notes to the exact words that contradict your lore, as of that point in the story. Line edits arrive as diffs to accept or reject. Change an entry, and Propagate finds what depends on it.
Characters take turns in a scene, each in their own voice and with private thoughts; a finalize pass turns the exchange into prose.
Guides for everything from your first scene to writing your own prompts — here, and in the app under Help → Guides. Updates arrive in-app on a Stable or Nightly channel.
Everything the app knows about your story lives in files you can open in any editor. Caches are disposable; credentials never enter the project, so a folder is safe to commit or share.
my-novel/ ├─ project.yaml # manifest: title, what it inherits ├─ project.md # the book itself: blurb, settings ├─ metadata.schema.yaml # this layer's schema contributions ├─ todo.yaml ├─ scenes/ # Markdown + YAML front matter ├─ lore/ research/ tags/ plot/ ├─ prompts/ # Jinja2 templates, editable in-app ├─ chats/ views/ mutation-sets/ snapshots/ └─ .cache/ # disposable, always rebuildable