Releases: mrigankad/Novel-OS
Release list
v0.3.0 — Novel OS became a studio
Novel OS became a studio
v0.2.0 was a multi-agent CLI with a dashboard. This release adds the writing
surface, the world model behind it, and a way to get a finished book out the
other end.
✍️ A real manuscript editor
Final is now a ProseMirror document — inline images, and comments anchored to
positions that survive edits. Agents still read a markdown projection, so not
one agent prompt changed.
Track changes ships with it: suggest mode turns typing into proposals and
deleting into struck text, with per-change or bulk accept/reject. A pending
suggestion is never exported or handed to an agent as accepted prose — the
projection is the reject-all view, enforced in storage rather than in the UI.
🧭 Three modes, not four stages
Writers move between planning, writing and revising constantly, and rarely in
order. ⌘1 ⌘2 ⌘3 re-lay out the studio around whichever you're in. The
pipeline's four stages remain, as provenance rather than a workflow.
Write mode gets out of the way: both rails collapse, continuity runs
silently, nothing volunteers itself, and there is no token meter anywhere near
the page. Select a passage and one bar offers the only four things worth doing.
🛡️ The continuity engine grew teeth
Twelve deterministic checks now, including relationship integrity,
since-anachronisms, contradictory bonds, and dead characters reappearing.
Two additions matter more than the count:
- "This is intentional." A checker cannot tell an unreliable narrator from a
mistake, so every finding can be dismissed with a reason that persists — keyed
to the fact, not the wording. The Guardian reads those exemptions too, so the
AI never re-litigates a call you've already made. - The stall detector. Sagging middles decompose into things the state already
records; three consecutive chapters that change nothing get reported as a
reactive protagonist, and the shape-of-the-book strip shows it at a glance.
No model is asked whether your book drags.
✨ Import a manuscript, keep your afternoon
Codex auto-extract proposes your cast, places and world entries from the prose
itself — deterministic, instant, and never written without confirmation. The
worst hour in this category is re-typing what's already in your draft.
📤 Compile: DOCX · EPUB · HTML · Markdown
Named styles drive the output — change what "Block Quote" means once and the
whole book follows.
Both binary formats are written directly, with no new dependencies. DOCX and
EPUB are ZIP-of-XML, so a writer who exports twice a year carries no document
library to do it.
🐛 Fixed — one of these was eating prose
- Scene breaks were destroyed on save. The house-style pass collapsed a
---
thematic break into" - "and ate the newlines around it, welding two scenes
into one paragraph. - Saving re-parsed the document's own markdown, which would have discarded
every pending track change on the first save. - Continuity checks could report on the wrong chapter — arity was chosen by
catchingTypeError, so aTypeErrorraised inside a check silently re-ran
it against the default chapter. - CORS allowed exactly one hardcoded origin; Write mode didn't collapse its rails
on a fresh load; 39 lint errors and a broken production build.
⚡ Faster
Opening a chapter no longer downloads the editor before anything paints —
593 kB → 166 kB for the chapter route.
374 Python tests · 70 TypeScript tests · production build and lint clean.
Full detail in CHANGELOG.md.
Design reasoning in the author's-workflow spec.
Full changelog: v0.2.0...v0.3.0
v0.2.0 — Run on your Claude subscription, zero-config setup
@
Highlights
Novel OS now adapts to whatever you already have — no API key required.
🆕 Key-free Claude Code backend (claude_cli)
Run the entire pipeline on your Claude subscription via the Claude Code CLI — no API key, no per-token billing. Auto-selected when no paid key is configured; just claude login and go. Explicit config and paid API keys always take precedence, so power users are never surprised.
🧙 Setup wizard (python core/orchestrator.py setup)
Zero-config onboarding that detects what you have — the CLI, any provider API key, or a local server (Ollama / LM Studio) — runs a live connection test, and writes your .env for you without clobbering existing settings. Run a writing command with nothing configured and it offers the wizard automatically.
✅ Tested
- 17 unit tests covering backend behavior, provider precedence, detection, and
.envpersistence. - Verified end-to-end: a full chapter drafted through
claude_cliwith no API key.
Notes
- Supported providers now: Claude Code CLI, Anthropic, OpenAI, Azure, Gemini, plus any OpenAI-compatible endpoint (Kimi, Groq, Together, OpenRouter, DeepSeek, Mistral, Fireworks, NVIDIA, Ollama, LM Studio).
Full changelog: v0.1.0...v0.2.0
@
v0.1.0: Initial Release
Novel OS v0.1.0: Initial Release
Novel OS is a stateful, provider-agnostic, and auditable multi-agent fiction writing framework. It treats a novel like a build pipeline where discrete agents perform specialized passes, mutating a central state file with deterministic checks gating progression.
🌟 Key Features
🎭 The Five Specialized Agents (agents/)
- 🏗️ Architect: Handles story planning, 3-act structure mapping, narrative beats, and chapter outlines.
- ✍️ Scribe: Writes chapter drafts in deep POV, emitting structured updates for state capture.
- 🔍 Editor: Refines prose with support for line editing, developmental structuring, pacing calibration, dialogue polishing, and tension calibration.
- 🛡️ Continuity Guardian: Fact-checks and enforces consistency across character files, timelines, world rules, and active plot threads.
- 🎨 Style Curator: Ensures voice consistency, genre adherence, prose rhythm, and vocabulary targets.
⚙️ Robust Core Engine (core/)
- LLM Provider Layer (
llm_client.py): Native support for Anthropic, OpenAI, Azure, and Gemini. Integrates seamlessly with OpenAI-compatible endpoints like NVIDIA NIM, Kimi, Groq, Together, OpenRouter, DeepSeek, Mistral, and Fireworks. - Persistent State Manager (
state_manager.py): Centralizes the story bible, characters, plot threads, chapters, timeline, and style profile in a single JSON schema. - Parser & State Applier (
state_parser.py): Extracts machine-parseable blocks from agent outputs ([SCRIBE_STATE_UPDATE],[CONTINUITY_REPORT], etc.) to update the persistent state. - Deterministic Continuity Engine (
continuity_engine.py): Offers cost-free, instant validation checks (e.g., overdue/dormant plot threads, missing manuscripts, character absence). - CLI Orchestrator (
orchestrator.py): Directs the entire pipeline from project init, character tracking, and outline planning to iterative agent execution (drafting, editing, validation, approval, and manuscript exporting).
🚀 Quick Start
- Install dependencies:
pip install -r requirements.txt
- Set up environment variables by copying
.env.exampleto.env. - Run the CLI pipeline:
python core/orchestrator.py init --title "My Novel" --genre "Sci-Fi" python core/orchestrator.py character add --name "Lena" --role protagonist python core/orchestrator.py plan outline --chapters 32 python core/orchestrator.py plan chapter --number 1 --pov "Lena" python core/orchestrator.py write --chapter 1
