EPUB reader with coding agent integration. Uses your existing CLI subscription (Copilot, Claude Code, Codex, Gemini).


pnpm install
cp server/.env.example server/.env
cp client/.env.example client/.env
pnpm dev
Client runs on http://localhost:5173, server on http://localhost:3002.


Chat with an AI agent about what you're reading. The agent has read-only access to the book's content and can reference any chapter.
The AI agent can search the web via Exa for information beyond the book's content. Set EXA_API_KEY in server/.env and VITE_WEB_SEARCH=true in client/.env (see setup above). A globe icon appears next to the chat input to toggle it.
.epub file
Everything lives in ~/.readingisfun/
~/.readingisfun/
├── auth.json # OAuth tokens
├── uploads/ # Original EPUB files
└── books/{bookId}/
├── manifest.json # Book metadata & chapter index
├── progress.json # Reading percentage & last CFI position
├── images/ # Extracted images
└── chapters/{N}/
├── raw.html # Chapter content (EPUB XHTML body)
├── metadata.json # Title, word count, image refs
├── notes.md # Your notes
├── highlights.json # Your highlights
└── chats/ # AI chat sessions
1 commits
TypeScript
80.5%
CSS
18.8%
EPUB reader with coding agent integration. Uses your existing CLI subscription (Copilot, Claude Code, Codex, Gemini).


pnpm install
cp server/.env.example server/.env
cp client/.env.example client/.env
pnpm dev
Client runs on http://localhost:5173, server on http://localhost:3002.


Chat with an AI agent about what you're reading. The agent has read-only access to the book's content and can reference any chapter.
The AI agent can search the web via Exa for information beyond the book's content. Set EXA_API_KEY in server/.env and VITE_WEB_SEARCH=true in client/.env (see setup above). A globe icon appears next to the chat input to toggle it.
.epub file
Everything lives in ~/.readingisfun/
~/.readingisfun/
├── auth.json # OAuth tokens
├── uploads/ # Original EPUB files
└── books/{bookId}/
├── manifest.json # Book metadata & chapter index
├── progress.json # Reading percentage & last CFI position
├── images/ # Extracted images
└── chapters/{N}/
├── raw.html # Chapter content (EPUB XHTML body)
├── metadata.json # Title, word count, image refs
├── notes.md # Your notes
├── highlights.json # Your highlights
└── chats/ # AI chat sessions
1 commits
TypeScript
80.5%
CSS
18.8%