book-to-skill: turn a technical book into a skill your agent can read
You read a technical book once, and months later chapter 7 is gone. book-to-skill runs a local Python extractor on the file, then your agent follows the spec to break the text into mental models, decision rules, techniques and anti-patterns. Each chapter becomes its own file that loads only when your question touches it.
Reads PDF, EPUB, DOCX, HTML, RTF, Markdown and plain text, plus MOBI and AZW via Calibre; accepts a single file, a folder or a glob.
Writes a SKILL.md with core models and a chapter index, per-chapter files in chapters/, and glossary.md, patterns.md and cheatsheet.md.
Asks whether the source is technical or prose-heavy, then picks Docling to keep tables and code or pdftotext for speed.
Offers analyze-only, generate-from-analysis and update/fold-in modes, so you can review findings first or add sources to an existing skill.
Detects scanned PDFs with no text layer early and stops, telling you to run OCR with ocrmypdf first.
When to use it
You own a book on distributed systems and want your agent to answer replication questions from its chapters, not from model memory.
Your team keeps ADRs, runbooks and onboarding guides in docs/ and wants them queryable as one skill while coding.
You are collecting papers and notes on a research topic and want one skill that grows as new material arrives.
Ask your agent
/book-to-skill ./release-it.pdf release-it
Just analyze ./docs/adr for now and list the decision rules you find, don't generate files
Fold ./notes/kafka-chapter.md into my existing ddia skill
Questions
How do I install book-to-skill?
Run npx skills add virgiliojr94/book-to-skill, or clone the repo into ~/.claude/skills/book-to-skill. That registers the /book-to-skill command.
Does book-to-skill work with Codex?
Yes. The README lists Codex alongside GitHub Copilot CLI, Amp, Claude Code, Hermes Agent, OpenCode and OpenClaw, all of which read the SKILL.md format.
Is my book uploaded anywhere?
Extraction and analysis run on your machine and the tool uploads nothing. Text your agent sends to a cloud model still follows that provider's data terms.