GitHub - baturyilmaz/readingisfun: EPUB reader that lets your coding agent read along · GitHub
/" data-turbo-transient="true" />
Skip to content
Search/
Sign in<br>Sign upAppearance settings
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
baturyilmaz
readingisfun
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Latest commit
History<br>1 Commit<br>1 Commit
Folders and files<br>NameNameLast commit message<br>Last commit date<br>client
client
media
media
server
server
.gitignore
.gitignore
LICENSE
LICENSE
README.md
README.md
package.json
package.json
pnpm-lock.yaml
pnpm-lock.yaml
pnpm-workspace.yaml
pnpm-workspace.yaml
prettier.config.js
prettier.config.js
tsconfig.base.json
tsconfig.base.json
View all files
Repository files navigation
readingisfun.
EPUB reader with coding agent integration. Uses your existing CLI subscription (Copilot, Claude Code, Codex, Gemini).
How to Run
pnpm install<br>cp server/.env.example server/.env<br>cp client/.env.example client/.env<br>pnpm dev
Client runs on http://localhost:5173, server on http://localhost:3002.
Features
Two Reading Modes
Study Mode — Three-panel layout: chapter sidebar on the left, raw XHTML content in the center, AI chat / notes / highlights on the right. Panels are resizable and collapsible.
Reader Mode — Paginated EPUB rendering via epub.js. Single-column view with page turns, three themes (light, sepia, dark), adjustable font size. AI and highlights accessible via slide-over panel on text selection.
AI Chat
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.
Works with any provider: Anthropic, GitHub Copilot, Google Gemini, OpenAI Codex
Authenticate through existing CLI subscriptions — no extra API keys needed
Web Search
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.
Highlights & Notes
Select text to highlight it (visually marked in reader mode)
Take markdown notes per chapter
All highlights and notes persist locally
EPUB Import
Import any .epub file
Data
Everything lives in ~/.readingisfun/
~/.readingisfun/<br>├── auth.json # OAuth tokens<br>├── uploads/ # Original EPUB files<br>└── books/{bookId}/<br>├── manifest.json # Book metadata & chapter index<br>├── progress.json # Reading percentage & last CFI position<br>├── images/ # Extracted images<br>└── chapters/{N}/<br>├── raw.html # Chapter content (EPUB XHTML body)<br>├── metadata.json # Title, word count, image refs<br>├── notes.md # Your notes<br>├── highlights.json # Your highlights<br>└── chats/ # AI chat sessions
About<br>EPUB reader that lets your coding agent read along<br>Resources<br>Readme<br>MIT license<br>Activity<br>Stars<br>5 stars<br>Watchers<br>0 watching<br>Forks<br>0 forks<br>Report repository
Releases
Packages
Contributors
Languages
You can’t perform that action at this time.