Claude Code plugin for token-efficient EPUB reading. Independent wrapper around prime-radiant-inc/books-for-bots. Rust (cargo) prerequisite.
Find a file
juliandickie 34e4a90c25 fix: second-pass code review corrections
CLAUDE.md pin-bump checklist no longer says edit the test (the test derives the SHA from the script since dfaf79b); now names script as single source of truth and lists all literal-SHA copies. SKILL.md last-chapter read no longer overstates Read tool semantics (no-limit Read is a large block, not guaranteed end-of-file; continue-until-end clause retained). plugin.json description scoped to EPUB only, consistent with the skill trigger. Spec/plan kept in sync (local-only).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 22:38:52 +10:00
.claude-plugin fix: second-pass code review corrections 2026-05-19 22:38:52 +10:00
commands feat: /convert-epub command 2026-05-19 21:43:02 +10:00
scripts fix: address code review on provisioning - derive pin from script, assert cargo args, document concurrency limit, trap cleanup 2026-05-19 21:56:42 +10:00
skills/epub-for-agents fix: second-pass code review corrections 2026-05-19 22:38:52 +10:00
test fix: address pre-publish code review 2026-05-19 22:13:05 +10:00
.gitignore chore: gitignore docs and binary cache per house convention 2026-05-19 20:02:20 +10:00
CLAUDE.md fix: second-pass code review corrections 2026-05-19 22:38:52 +10:00
LICENSE chore: add MIT LICENSE for wrapper code 2026-05-19 20:05:52 +10:00
README.md docs: README with attribution, prerequisite, license posture 2026-05-19 21:43:02 +10:00

epub-for-agents

A Claude Code plugin that makes EPUBs token-efficient to read for agents.

It converts an EPUB to a single Markdown file whose YAML frontmatter lists every chapter with its absolute line and byte offset. Claude then reads the frontmatter and seeks straight to a chapter, instead of loading the whole book into context.

Credit and upstream

The conversion is done entirely by books-for-bots by prime-radiant-inc. This plugin does not copy or modify that tool. It is an independent wrapper that provisions a pinned build of it.

This plugin pins upstream commit 7f47fd923c45f4cadbdc4ee2ab92d5bb81e1b8b2.

License status of the upstream tool

At the pinned commit, the upstream README states MIT but the repository ships no LICENSE file and GitHub detects no license. That makes the upstream license technically unclear. This plugin therefore copies no upstream code and only provisions a build on your own machine. A request for license clarification has been raised with the upstream project. For authoritative terms, refer to the upstream repository directly.

This plugin's own wrapper code is MIT, see LICENSE.

Prerequisite

The Rust toolchain (cargo) must be installed. The plugin builds the pinned upstream binary from source on first use. Install Rust from https://rustup.rs if you do not have it. The first conversion can take a few minutes to compile. Later runs are instant from a per-commit cache.

Use

Point Claude at an .epub, or run the command.

/convert-epub path/to/book.epub

Then ask questions about the book. Claude seeks to the relevant chapters by offset rather than reading the whole file.

What it does not do

No summarization, no content judgment, no cleanup. The upstream tool is a deterministic, faithful structural translation of the book. Garbage in, garbage out.