NovelForge reads your books so it can help you read them: a character codex, a relationship graph, and search across every downloaded chapter — all on your phone, none of it spoiling you.
This is the app's actual behavior. The graph is built only from chapters you've read — drag forward and watch characters appear the moment you'd meet them. Hover a character to trace their bonds.
Most reading apps assume you read in ten-minute commutes. This one assumes you're eleven hundred chapters into something, you have four more books in rotation, and you just hit a name you haven't seen since last March. Other apps leave you to scroll back. NovelForge answers: who they are, when you met them, and every scene they've been in — without revealing a single chapter you haven't reached.
That's the idea across the whole app. Offline by default, because you read on flights. Eleven themes, because your eyes change as the day goes on. Stats that stay on your phone, so you can think "huh, I read more than I thought" without a dashboard somewhere thinking it too.
The whole thing is free. The source is open. Whatever's on your phone stays there.
The feature no other reader has, built for the question every long-series reader asks.
NovelForge scans your downloaded chapters — on-device, no cloud — and finds every recurring character, place, and faction. Each entry shows when they first appeared, how often they turn up, a presence sparkline across the whole book, and every mention with a snippet. Tap a mention and the reader opens at that exact paragraph.
The spoiler guard is structural, not a checkbox: entries and mentions are cut off at your current chapter, so a character you haven't met doesn't exist yet, and one you have can't leak future scenes.
The graph you tried up top is the real feature: characters sized by how often they appear, connected when they share chapters, laid out so factions cluster and loners drift to the edges. Tap two characters and get every chapter they share; tap a chapter and you're reading the scene.
Because it's built only from chapters behind your bookmark, the graph grows as you read. Finishing an arc literally redraws the map.
Every downloaded chapter is indexed on-device. Type a name, a phrase, half a memory — results come back grouped by book, with the match bolded in context. Tap one and the reader opens scrolled to that paragraph, not just that chapter.
Inside a chapter, a find bar does the same at close range: every occurrence marked, next and previous, works in both scroll and paged mode.
Long-press a paragraph to bookmark it with a note. Select text to highlight in six colors. Everything is searchable, everything exports as JSON, and the codex cross-references your highlights — open a character and see every line you've ever marked about them.
Reading history keeps the trail: every session, every book, so "the thing I was reading two Tuesdays ago" is an actual query the app can answer.
These are the reader's actual controls, running in your browser. Eleven themes, eight fonts, and the sliders between them.
The town held its breath when the river started to freeze that year. By December the surface was thick enough to walk on, and the children dared each other to cross the bend by the old mill where the ice was thinnest.
Marin watched them from the window of the bookshop, her tea going cold in her hands. She had not yet decided whether to tell anyone what she had found in the back room three days earlier — the box of letters, the inscriptions in a hand she almost recognized.
Outside, a boy slipped and fell laughing onto the ice. His friends pulled him up. The river held. The bookshop bell did not ring all afternoon.
Your device's system TTS out of the box, plus Piper and Kokoro neural voices you download in-app when you want better. Speed, pitch, volume, sentence gaps, paragraph gaps — separately adjustable, with a sleep timer for reading yourself out.
The pronunciation dictionary fixes the words your engine keeps mangling — character names, place names, invented terms — and can silence the ones you'd rather it skipped entirely, like the stray asterisks and scene-break marks that come out as "asterisk". Save it as JSON, load it on another device. And when a book deserves a run or a commute, generate a proper M4B audiobook with chapter markers.
Words, chapters, time, streaks. A 12-week heatmap. Personal records for longest session and best day, week-over-week deltas so you can see whether you're trending up or just remembering selectively. A home-screen widget puts the book you're on one tap away.
All of it is computed locally. There is no analytics service watching what you read — there's nowhere for one to live. Share a weekly summary card if you want; that's your call, made per-card.
Import any .epub, .txt, or .md — cover, chapters, and metadata extracted automatically, with chapter breaks detected from headings, chapter lines, or scene breaks. Export any book back to a clean EPUB for archiving or another reader. Your files never stop being yours.
Infinite scroll for binge nights, paged mode with slide, fade, or curl transitions when you want to slow down, and a teleprompter auto-scroll from 20 to 200 px/s for hands-free reading.
Four tap-zone layouts: classic sides, forward-anywhere for one-handed reading, an L-shaped layout, or off entirely for swipe-and-volume-key purists. Same zones in both reading modes.
Volume up scrolls up, down scrolls down — off by default. Audio focus is handled properly, so calls and podcasts behave normally when you're not in the reader.
Categories you define, an updates feed for ongoing books, grid or list views, and a home screen that knows what you were reading and how far you got — down to the paragraph.
Everything — library, history, bookmarks, highlights, codex, settings — exports as a single ZIP, automatically on a schedule if you like. New phone, one import, done.
NovelForge is a free download from GitHub. No paid tier, no subscription, no ads — now or later. You don't make an account, and nothing you read leaves your phone. Even the character analysis that looks like it should need a cloud, doesn't. The source is open if you'd like to check.
Android 7.0 or later, on 64-bit devices. Android only — an iOS build isn't planned.
Get it on GitHub