# OpenNovelWriter ### Your AI co-author for novels — not your developer. **You tell the story. OpenNovelWriter writes the chapters in your voice.** ✍️ **Co-author, not a generator** — chapters are built around your direction 🧠 **World memory** — world wiki, timeline, and glossary as YAML 🎭 **Your voice** — learns your writing style from sample chapters 🌍 **Multilingual** — write in one language, publish in many 📝 **Obsidian-native** — everything is Markdown, editable in your editor
--- ## What is OpenNovelWriter? A **co-author agent** for [OpenCode](https://opencode.ai) that writes *around* the author rather than *for* them. You say *"next chapter: Elena finds the letter"* — OpenNovelWriter loads your world wiki, your writing style, and the story so far, and writes the chapter in your voice. Unlike a code agent, OpenNovelWriter doesn't generate files from specs — it generates **prose from a living world**. ## Quick Start ```bash # 1. Create and name a vault/workspace for your book (in Obsidian), then open # that folder in opencode. # 2. Initialize it (interactive wizard) — runs INSIDE the folder opencode --agent OpenNovelAgent > /init # 3. Build the world, or start writing > "Let's build the world wiki with the main characters" > "Write Chapter 001: [what should happen]" # 4. Translate > "Translate chapters 1-5 into English" ``` ## The Core Concept: workspace = book **One book = one workspace = one folder.** You create and name a vault for each book (e.g. "Die Kessler Zwillinge", "Scruffy"), open it in opencode, and run `/init` there. The folder's name is the project name. Writing several books in parallel? Create one workspace per book and switch between them. The agent is the same in every workspace — what makes each one *that* book is its own `AGENTS.md` + `DATA/` (world wiki, timeline, glossary, style). ## The Core Loop ``` Author: "next chapter — this should happen" ↓ Agent loads: AGENTS.md + world wiki + timeline + writing style ↓ Agent proposes a chapter draft → author approves ↓ Agent writes the chapter → author edits in Obsidian ↓ Agent harvests new facts → updates wiki & timeline ``` ## Project Structure ``` My Series/ ├── 01/ # book 1 │ ├── DE/ # Kapitel 001.md, Kapitel 002.md, … │ └── EN/ # Chapter 001.md, … ├── DATA/ # world wiki, timeline, glossary, writing style ├── AGENTS.md # project rules └── README.md ``` See [`docs/SCHEMA.md`](docs/SCHEMA.md) for the complete conventions. ## What's Included - **`OpenNovelAgent`** — the primary co-author - **`/init`** — interactive project wizard (language first, then everything in that language) - **`DATA/` schemas** — world wiki, timeline, glossary (YAML in Markdown) - **`languages.yaml`** — extensible language registry ## For the Community OpenNovelWriter is designed to be multilingual. The `/init` wizard's first question is the writing language; all further questions and content follow that language. New languages are added as a single entry in `.opencode/languages.yaml`. ## Attribution OpenNovelWriter builds on the exceptional work of **Darren Hinde** and the [OpenAgentsControl](https://github.com/darrenhinde/OpenAgentsControl) project. Without that foundation — the agent concept, the context system, and the plan-and-approve workflow — this project would not exist. Thank you, Darren. ## License MIT — Copyright (c) 2025 Darren Hinde (OpenAgentsControl) and Copyright (c) 2026 OpenNovelWriter Contributors. Darren Hinde's original work remains under the MIT license.