book-reader
Book Reader
Read and query digital book formats from the command line using BM25 search.
Quick Start
# Get book metadata
uv run ~/.claude/skills/book-reader/book.py info ~/Books/mybook.pdf
# Show table of contents
uv run ~/.claude/skills/book-reader/book.py toc ~/Books/mybook.epub
# Read a specific chapter
uv run ~/.claude/skills/book-reader/book.py read ~/Books/mybook.pdf --chapter 3
# Read a specific page
uv run ~/.claude/skills/book-reader/book.py read ~/Books/mybook.pdf --page 42
# Search for content (BM25 ranked)
uv run ~/.claude/skills/book-reader/book.py search ~/Books/mybook.pdf "query"
# Extract full text
uv run ~/.claude/skills/book-reader/book.py extract ~/Books/mybook.txt
Supported Formats
| Format | Extensions | Features |
|---|---|---|
.pdf |
Page numbers, TOC detection, metadata | |
| EPUB | .epub |
Chapters from spine, full metadata |
| MOBI | .mobi, .azw, .azw3 |
Basic extraction |
| Text | .txt, .text, .md |
Chapter pattern detection |
When to Use
- User provides a book file and asks questions about its content
- Need to find specific quotes, passages, or information
- Navigating to specific pages or chapters in a document
- Researching topics across digital books
- Extracting text for further processing
How It Works
- First access: Extracts and caches the book content
- Subsequent access: Uses cached version (invalidates on file change)
- Search: BM25 algorithm ranks results by relevance
- Results: Include chapter/page location for reference
See Also
See REFERENCE.md for complete command documentation.
More from trevors/dot-claude
jj-workflow
Jujutsu (jj) version control, load skill when hook output shows vcs=jj-colocated or vcs=jj in the system-reminder.
93notion-formatter
Format markdown content for Notion import with proper syntax for toggles, code blocks, and tables. Use when formatting responses for Notion, creating Notion-compatible documentation, or preparing markdown for Notion paste/import.
47using-jj
Advanced jj/jujutsu workflows — revsets, absorb, evolog, op restore/undo, immutable_heads bypass, divergent-change resolution, jj split, parallel jj new, conflict-after-rebase, force-push recovery. Contains non-obvious rules (e.g., always `-m` to avoid editor) that prevent broken workflows. Skip for simple commit/push/rebase.
45svelte5
Svelte 5 syntax reference. Use when writing ANY Svelte component. Svelte 5 uses runes ($state, $derived, $effect, $props) instead of Svelte 4 patterns. Training data is heavily Svelte 4—this skill prevents outdated syntax.
39maintaining-claude-code
Create, validate, and improve Claude Code configuration — SKILL.md files, CLAUDE.md, rules, hooks, and settings.json. Use when creating a new skill, writing a SKILL.md, adding a hook, editing rules, auditing skill descriptions, checking config quality, debugging hook behavior, or deciding between skills vs rules vs CLAUDE.md. Also auto-loads when working in ~/.claude/ on skills, rules, hooks, or settings.
32glhf
>-
28