
AI-assisted creative writing, scene planning, and worldbuilding in a local-first app.
Writingway 2 is a browser-based writing tool built for drafting fiction, organizing scenes, keeping worldbuilding notes close at hand, and working with either cloud AI providers or a local GGUF model.
Discord: https://discord.gg/HyRmNKe5QA
Writingway is organized around projects, chapters, scenes, and compendium entries. It gives you:
Local-first writing workflow Your projects live in IndexedDB while you work, and can also be saved to disk as project files.
Flexible AI setup Use OpenRouter, Anthropic, OpenAI, Google, NanoGPT, LM Studio, custom OpenAI-compatible endpoints, or a local GGUF model via llama.cpp.
Built-in local GGUF setup flow
If Writingway detects a .gguf file in models/ but no llama.cpp server, it can offer an in-app setup wizard to install llama.cpp for you.
Backups GitHub Gist backup is supported, and local versioned backups are supported through the app server. OneDrive and Google Drive are listed in the UI but are not implemented yet.
In-app update staging Writingway can detect newer builds, download an update, stage it locally, and apply it the next time you restart from the launcher.
.gguf model placed in models/llama/
Or let the app install them through the setup wizard when supported.start.bat.chmod +x start.sh
./start.sh
If you already placed a .gguf model in models/:
start.sh or start.batIf you do not want local AI, just skip the wizard and use an API provider instead.
Use this for:
This is the best choice if you want the simplest setup.
Use this only when both are true:
.gguf file in models/llama/Writingway hides this option when the local backend is not actually available, so users are less likely to end up in a broken configuration.
The launchers do a few important things for you:
http://127.0.0.1:8000http://127.0.0.1:8001http://127.0.0.1:8080 when local GGUF mode is availableUse the launcher scripts instead of opening main.html directly.
The disk save button writes the current project snapshot to the projects/ folder through the local app server.
Writingway can create timestamped JSON backups in:
project-backups/
This gives you local restore points without needing a cloud account.
Writingway can back up a project to a private GitHub Gist if you provide a GitHub token with gist scope.
These appear in the backup provider selector, but are not functional yet:
Writingway compares the latest GitHub commit date on main with the local build date in src/update-checker.js.
If a newer build is available:
On Windows and Linux/macOS, the staged update is applied by start.bat or start.sh on the next launch.
Writingway includes a Writingway 1 importer for older projects. It can bring over project structure and content so you can continue working in Writingway 2.
A few important folders:
models/ Optional GGUF model files
llama/ Optional llama.cpp server files
projects/ Manual project saves written by the app server
project-backups/ Local versioned backups
tools/ Local Python services
src/ App source
This repo includes a small test setup in package.json.
Available scripts:
npm run smoke
npm run unit
npm run ui
npm test
What is working now:
What is intentionally incomplete:
Check that:
.gguf file exists in models/llama/Use the launcher scripts, not main.html directly.
The launchers wait for the local app server before opening the browser.
Restart Writingway using start.sh or start.bat.
The staged update is applied by the launcher on startup.
Only GitHub Gist and Local Versioning are currently implemented. OneDrive and Google Drive are placeholders in the UI for future work.
$ claude mcp add Writingway2 \
-- python -m otcore.mcp_server <graph>