Local Writing App

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

The manuscript tree, a scene open in the editor, and the metadata rail
The manuscript tree, a scene in the editor, and its metadata — all of it plain files on your disk.

Why this exists

Your manuscript is not a rental

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.

Fully offline, plain files

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.

AI as a tool, not a ghostwriter

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.

What it does

Manuscript

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.

Lore

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.

Plot boards

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.

Views

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.

Layered metadata schema

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.

AI, when you want it

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.

Revising

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.

Roleplay

Characters take turns in a scene, each in their own voice and with private thoughts; a finalize pass turns the exchange into prose.

A manual built in

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.

A lore entry with typed fields, references, and backlinks
A lore entry: typed fields, references to other entries, and backlinks from the scenes that mention it.
The plot board with cards on plotlines, laid out against acts and chapters
The plot board: cards on plotlines, laid out against the acts and chapters they belong to.

A project is a folder

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