# BookWith: An AI Reading Companion for ePub Files

> BookWith is a self-hosted AGPL-3.0 TypeScript monorepo that layers a conversational AI assistant, AI podcast generation, and a multi-tier memory system on top of a standard ePub reader, targeting readers, students, and researchers who want context-aware dialogue about the books they are reading.

**shutootaki/bookwith** — BookWith – A New Reading Experience with AI. A next-generation conversational reading platform that goes beyond traditional e-book readers

- Repository: https://github.com/shutootaki/bookwith
- Stars: 309 · Forks: 22
- Language: TypeScript
- License: AGPL-3.0
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/shutootaki-bookwith

## What BookWith Adds to a Standard ePub Reader

A conventional ePub reader displays text, supports bookmarks, and sometimes allows highlights or notes. BookWith keeps all of those and adds a persistent chat panel. The AI assistant in that panel has access to the content of the book you are reading and answers questions in context of your current page. The README describes the core problem it targets: when you encounter something unclear in a book, you normally have to look it up yourself, there is no way to verify your understanding on the spot, and notes and highlights end up scattered and hard to use later.

BookWith addresses those gaps with four interlocking features: context-aware AI answers, a multi-layer memory system that persists conversation history across reading sessions, smart highlights with five color categories, and semantic search across your library including past AI dialogues.

The platform is written in TypeScript as a pnpm monorepo under a Turborepo build system. The repository includes both a Next.js frontend and a Python backend under a Poetry workspace, with Supabase handling the database layer. It is not a hosted service with a registration page; running it requires setting up the full stack locally or on your own server.

## Multi-Layer Memory: How Context Stays Consistent

The most architecturally specific part of BookWith is its three-tier memory system. The README describes it as follows:

Short-term memory holds the latest five conversation entries and maintains the flow of the current dialogue as you turn pages. Mid-term memory condenses key discussion points every twenty entries, preserving understanding across chapters. Long-term memory uses vector search to retrieve relevant information from all past dialogues and to link knowledge from other books in your library.

A fourth layer, the user profile, learns your interests and preferences over time to personalize AI responses.

The README gives a concrete illustration: content from an economics book you read a week ago can be automatically surfaced when you are reading a marketing book that covers related concepts. Whether this cross-book retrieval works well in practice depends on how the embedding model handles the specific subjects in your library, which is not something the README documents in detail.

## Setting Up BookWith Locally

The README truncates before giving the complete installation steps, but it points to docs/DEVELOPMENT_GUIDE.md for the full local setup guide. The top-level repository structure shows the relevant tooling: the project uses pnpm 9.15.4 as the package manager, Turborepo for the monorepo build, and requires Node.js 18.0.0 or higher based on the engines field in package.json.

The package.json shows the available scripts for starting the project:

```bash
pnpm dev
```

This runs all applications in parallel via Turborepo's parallel flag. The Python backend is managed through Poetry, requiring Python 3.11 or higher based on the pyproject.toml.

Building the project follows the same Turborepo pattern:

```bash
pnpm build
```

A Supabase configuration directory is present in the repository, indicating that a Supabase project is required for the database and authentication layers. The AI podcast generation feature depends on Google Cloud Text-to-Speech, so a Google Cloud account with that API enabled is needed for that specific feature.

## AI Podcast Generation and Audio Features

BookWith converts book content into short-form podcast-style audio. The README describes the workflow as automatic script extraction followed by conversion into a host-and-guest dialogue format, optimized for a five-to-ten minute listenable length. The audio synthesis layer uses Google Cloud Text-to-Speech's multi-speaker capability.

The README describes three use cases for this: understanding the summary of a long novel, checking the key points of a business book during a commute, and previewing the main ideas of a technical book before reading it in full.

The feature depends on Google Cloud infrastructure rather than a locally run model. Users who want fully offline operation or who have privacy requirements about book content leaving their local machine should note that the podcast generation route sends content to Google's API. The README does not document a local alternative for the speech synthesis step.

## Smart Annotations and Semantic Search

The annotation system uses five highlight colors, each assigned a category in the README: red for critical points, yellow for important concepts, green for ideas to practice, blue for questions and items to verify. Notes added to highlights support Markdown formatting.

Highlighted passages integrate with the AI assistant. The README states that highlighting a passage automatically prompts the AI to ask questions about it, and that the AI understands annotation notes and provides related information.

The semantic search covers all books in your library, including past AI dialogue history and annotation content. The README describes it as cross-book search that finds passages connected by meaning rather than exact text match. A concrete example in the README: if a concept from a book you read three months ago appears in what you are reading now, the system surfaces that connection.

The practical limit on this feature is that the README does not specify which embedding model drives the vector search or whether it runs locally or through an external API. That detail matters for users with large libraries or strict data handling requirements.

## Format Support and Platform Limits

BookWith supports ePub 2.0 and ePub 3.0. The README explicitly lists only these two formats. PDF, MOBI, AZW, and other common ebook formats are not mentioned. Readers whose libraries are primarily in PDF or Kindle formats would need to convert before using BookWith.

On the device side, the README lists PC (Windows 10+ and macOS 10.15+), tablets (iPad and Android tablets), and smartphones with responsive design. A JavaScript-enabled browser and an internet connection for AI features are listed as requirements. There is no mention of an offline mode where the AI functions without network access.

The AGPL-3.0 licence applies to the full repository. This is a copyleft licence with a network use clause: if you run a modified version of BookWith as a service that others access over a network, you must make the modified source code available. For personal or internal use without any form of distribution or network service, the licence does not impose source-sharing requirements.

## Alternatives and Maintenance

The closest open-source alternatives are Readest and Flowoss, both of which appear in the related search data for BookWith. Readest is a cross-platform ePub reader that also supports self-hosting. It does not document an integrated AI chat feature, making it more suitable for readers who want a clean reading experience without AI interaction.

BookWith's approach is different: it treats the AI conversation as a first-class feature rather than an optional add-on, and it builds memory persistence and cross-book search directly into the reading experience. The trade-off is the infrastructure requirement. Readest can run as a standalone app; BookWith requires Supabase and, for podcast features, Google Cloud.

The repository was last pushed on 2026-05-10 and is not archived. There are no GitHub releases listed, which means there is no versioned release to pin to; the main branch represents the current state of the project. The monorepo structure with Turborepo, Supabase, Poetry, and pnpm represents a non-trivial dependency surface for a personal project, and that complexity should factor into the decision to adopt it.

## Conclusion

BookWith suits readers who want to hold conversations with an AI that has read the same book they are currently reading, and who are comfortable running a self-hosted pnpm monorepo with a Supabase backend. The AGPL-3.0 licence means any modified version you distribute must also be released under AGPL-3.0, which matters if you intend to build a product on top of it. Readers who simply want a clean ePub reader without infrastructure overhead will find it overbuilt. Before adopting, check that the Local Setup Guide in docs/DEVELOPMENT_GUIDE.md covers your operating system and that you have a Google Cloud account for the Text-to-Speech features the podcast generation depends on.

## FAQ

### What ebook formats does BookWith support?

The README lists support for ePub 2.0 and ePub 3.0 only. PDF, MOBI, and other ebook formats are not mentioned in the documentation.

### Does BookWith require an internet connection for its AI features?

Yes. The README lists an internet connection as a requirement for AI features. The podcast generation feature specifically depends on Google Cloud Text-to-Speech, which is an external API. The README does not document a fully offline operating mode.

### How does the multi-layer memory system in BookWith work?

BookWith uses three memory tiers. Short-term memory holds the last five conversation entries. Mid-term memory summarizes key points every twenty entries to maintain understanding across chapters. Long-term memory uses vector search to retrieve relevant passages from all past dialogues, including from other books in your library.

## Sources

- [Issues](https://github.com/shutootaki/bookwith/issues)
- [License: AGPL-3.0](https://github.com/shutootaki/bookwith/blob/main/LICENSE)
- [README](https://github.com/shutootaki/bookwith/blob/main/README.md)
- [shutootaki/bookwith on GitHub](https://github.com/shutootaki/bookwith)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/shutootaki-bookwith
