Skip to content

Latest commit

 

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arthur is not the Author

Intelligent writing companion for authors. The AI is named Arthur, and Arthur is never the author. Arthur does not try to be the author. It reads what you write and keeps story bible of your characters, chapters, and world lore, then uses RAG with an LLM of your choice to help you brainstorm, check consistency of characters and world-building over stories and entire series, and catch plot holes. Most features don't actually require a running LLM -- because Arthur isn't the Author. The developer has published a book using only this app, from soup to nuts. The app did not provide a word of it.

Features (MVP)

  • Distraction-free editor — projects, chapters, autosave, word counts

  • Character dossiers — traits, motivations, speech patterns, relationships Screenshot From 2026-08-08 09-05-24 Screenshot From 2026-08-08 09-05-24

  • World & lore notes — freeform world-building stored with the manuscript Screenshot From 2026-08-08 09-05-36 Screenshot From 2026-08-08 09-06-04

  • Story memory (RAG) — chapters/characters/world notes chunked into ChromaDB

  • Influence Analyzer — maps literary/thematic resonances with cited evidence (craft awareness, not judgment) Screenshot From 2026-08-08 09-09-36

  • Story map — tension pulse, chapter mass, cast presence grid, arc lanes, story circle, co-presence links -- This is the most useful feature for most authors. It offloads mental overhead that isn't the storyline. Screenshot From 2026-08-08 09-04-50 Screenshot From 2026-08-08 09-05-05

  • Export — Markdown, plain text, HTML, DOCX, EPUB, no-publish watermarked WAV, or full JSON backup

  • Local-first LLM — any OpenAI-compatible API (llama.cpp server, Ollama, OpenAI, FastFlowLM, etc)

  • LLM Not Required — useful checklists and most mapping features work fine when no model is running

Stack

Layer Tech
Frontend React, Vite, Tailwind CSS
Backend Python, FastAPI
Memory ChromaDB + sentence-transformers
LLM OpenAI-compatible HTTP API

Quick start

1. Backend

cd backend
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python run.py

API: http://127.0.0.1:8000
Docs: http://127.0.0.1:8000/docs

Optional env (see backend/.env.example):

export GW_LLM_BASE_URL=http://localhost:11434/v1   # Ollama
export GW_LLM_MODEL=llama3.2

2. Frontend

cd frontend
npm install
npm run dev

App: http://127.0.0.1:5173

3. LLM (optional but recommended)

llama.cpp server

llama-server -m /path/to/model.gguf --port 8080
# default GW_LLM_BASE_URL=http://localhost:8080/v1

Ollama

ollama serve
ollama pull llama3.2
export GW_LLM_BASE_URL=http://localhost:11434/v1
export GW_LLM_MODEL=llama3.2

FastFlowLM (Recommended for AMD AI 340+ machines, light. Any Atomic-Germ or FastFlowLM HuggingFace or Modelscope repo will work, results vary)

wget https://huggingface.co/Atomic-Germ/Qwen3.5-9B-Claude-4.8-Opus-NPU2/resolve/main/flm-add.py
python3 ./flm-add.py Atomic-Germ/Qwen3.5-9B-Claude-4.8-Opus-NPU2 
FLM_CONFIG_PATH="$HOME/.config/flm/model_list.json" FLM_XCLBIN_PATH="$HOME/.config/flm" flm serve qwen3.5-claude:9b --port 8080

Without a model, the app still runs; assist endpoints return offline guidance.

Project layout

GhostWriter/
├── backend/
│   ├── app/
│   │   ├── api/          # FastAPI routers
│   │   ├── db/           # JSON project storage
│   │   ├── models/       # Pydantic schemas
│   │   ├── services/     # RAG, embeddings, LLM
│   │   ├── config.py
│   │   └── main.py
│   ├── requirements.txt
│   └── run.py
├── frontend/
│   └── src/              # React UI
├── data/                 # projects + chroma (runtime)
└── tests/

Tests

cd backend && source .venv/bin/activate
pip install pytest httpx
cd ..
pytest tests/ -q

How assist works

  1. You write chapters and fill character/world panels.
  2. Content is chunked and embedded into a per-project Chroma collection.
  3. On assist, GhostWriter retrieves relevant story fragments + full character dossiers.
  4. Context is sent to the LLM with a mode-specific system prompt.
  5. Sources used for retrieval are shown in the AI panel.

Roadmap

  • Phase 2 — deeper plot-hole detection, automated consistency scoring, subplot tracker
  • Phase 3 — collaboration, export (DOCX/EPUB), richer world graph

License

MIT

About

It's an IDE, but for Authors. Arthur AI is optional, and is not the author. Works best with OpenFlowLM for advanced features.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages