A magical studio for novelists. Plan, draft and revise your novel — chapters, scenes and a codex of your world — in a fast, local-first desktop app for macOS, Windows and Linux.
magicNovel is a source-available alternative to tools like NovelCrafter, in the spirit of projects like Open Design: local-first and entirely yours. It is a project by menglobe.online.
Get the app: magicNovel is free — ready-to-install builds for macOS, Windows and Linux are on the Releases page. Development is supported by donations: if the app is useful to you, a donation via PayPal keeps it alive. You can also build it yourself with the instructions below.
- Library — all your novels on one shelf, stored as plain JSON on your machine. No accounts, no cloud, no lock-in.
- Manuscript — organise your book into chapters and scenes. Reorder them, track per-scene status (outline → draft → revised → final), and watch word counts roll up from scene to chapter to book.
- Editor — a distraction-free rich text editor (TipTap/ProseMirror) with an editorial, typography-first design: real serif prose, paragraph indents, scene breaks.
- Codex — a wiki for your world: characters, locations, objects and lore, each with aliases, description and private author notes.
- Autosave — every change is saved automatically, with atomic writes so a crash never corrupts your manuscript.
- Muse (AI) — an assistant that reads your current scene and codex, powered by the agent CLIs you already have installed: Claude Code (
claude), Antigravity (agy), Codex (codex), Ollama (ollama— local models plus the full ollama.com cloud catalog when signed in, all listed automatically) and OpenRouter (bring your API key in Settings for hundreds of hosted models; the key never leaves your machine except to openrouter.ai). magicNovel never stores API keys — the CLIs bring their own auth, and nothing leaves your machine except through the agent you choose. Continue a scene, rewrite a paragraph, brainstorm endings, and insert the answer straight into your manuscript. With Actions on, Muse becomes an agent: it sees the whole project structure and can write or rewrite scenes, create scenes and chapters, update statuses and summaries, rename things and maintain the codex — every change it makes is listed in the chat. - Beats — NovelCrafter-style outline notes that live inside the manuscript (⌘⇧B). A beat says what should happen; it never counts as prose, and one click ("Write prose") hands it to your agent, which drafts the passage in place using the scene and codex as context.
- Inline editing — select any passage and a floating menu appears: formatting plus AI line edits (Rewrite / Expand / Tighten) that replace the selection in place.
- Ghost autocomplete — toggle "Ghost" in the editor toolbar and the AI quietly suggests the next sentence or two as grey text while you write. Tab accepts, Esc dismisses, typing ignores it.
- Bilingual UI — English and Spanish, auto-detected from your system with a switcher on the shelf. Contributions for more languages welcome (
src/i18n.ts). - Novel language — each project declares the language it's written in (Spanish, English, French, …); every AI feature is told to write in that language, so a Spanish novel never drifts into English prose.
- Model picker with live detection — choose the model each agent should use (Claude Opus/Sonnet/Haiku, Gemini 3.x via Antigravity, GPT-5.x) or leave the CLI's default. CLIs that can enumerate their own models (
agy models) are asked directly; for the rest, each candidate id is verified once per CLI version with a tiny "Reply OK" run. Renamed or retired model ids simply disappear from the picker, and a stale saved pick silently falls back to the default. - Add to codex from the text — select a name in the manuscript and the floating menu can file it straight into the codex as a character, location, object or lore.
- Export — one click to EPUB 3, DOCX or print-ready PDF (via the system print dialog). Beats never ship in an export.
- Master prompts — every AI request ships with built-in craft rules (show don't tell, deep POV, no clichés, no AI-isms) so output quality doesn't depend on prompt skill, NovelCrafter-style. Your own style sheet from Settings is layered on top.
- Settings — from the library shelf: target prose length, ghost suggestion length and delay, editor type size, and your personal AI style instructions.
Each novel is a single pretty-printed JSON file in your platform's app data directory:
- macOS:
~/Library/Application Support/com.evilrender.magicnovel/projects/ - Linux:
~/.local/share/com.evilrender.magicnovel/projects/ - Windows:
%APPDATA%\com.evilrender.magicnovel\projects\
Copy those files anywhere — that's your backup.
Prerequisites: Node.js ≥ 20, Rust stable, and the Tauri prerequisites for your platform.
npm install
npm run tauri dev # run the desktop app
npm run tauri build # produce installers for your platformnpm run dev alone runs the UI in a browser with a localStorage backend — handy for quick UI work.
npm run build:allBuilds macOS locally, then (with the GitHub CLI authenticated and an origin remote) triggers the Build workflow on GitHub Actions for Windows and Linux, waits, and downloads every installer into dist-release/ — .dmg (macOS), .msi/.exe (Windows), .AppImage/.deb (Linux). Tauri cannot cross-compile, which is why Windows/Linux come from CI; pushing a v* tag also produces a draft release with all installers, and on a Windows machine npm run tauri build works directly.
- Tauri 2 — Rust shell, tiny binaries
- React + TypeScript + Vite
- TipTap — rich text editing
- Zustand — state
- Tailwind CSS 4 — styling
PolyForm Noncommercial 1.0.0 — the source is available to read, study and build for personal, noncommercial use; commercial use of the software (selling builds or derived apps) requires written permission from the author.
Your work is yours: everything you create with magicNovel — manuscripts, exports, generated covers — belongs entirely to you, for any use including commercial, with no attribution required.