mrkeyoor.com_
Sat 05 Sept 07:54 UTC
LLM Toolsevaluationupdated 05 Sept 2026

book-to-skill review

book-to-skill turns a book or document folder into a set of instructions and topic files that a coding agent can consult later. It extracts the source locally, then guides Claude Code, Codex, Copilot CLI, Amp, or Hermes Agent through writing chapter notes, a glossary, patterns, and a quick-reference file.

Verdict

Our book-to-skill run installed 161 packages and consumed 6,075 MB, then passed all 627 tests in 15 seconds. Use it when the same owned documents keep returning in agent-assisted work and you are prepared to review the resulting skill as edited notes. Choose retrieval with citations for research evidence, and avoid the workflow when cloud-model policy or redistribution rights make source processing unacceptable.

We ran it

Lab card: what happened when we ran book-to-skillScreenshot of book-to-skill (github.com/virgiliojr94/book-to-skill)
Install✓ · 100s161 packages · 6075 MB
Build✓ · 6s
Tests✓ · 15s627 passed · 0 failed of 627 (pytest)
Known vulns0(pip-audit)
Repo108 files~10,507 lines of source · 1.8 MB · 3 CI workflows · tests dir

Answers from our run

Does book-to-skill build from source?

Dependencies installed in 100 seconds (161 packages), and the build succeeded in 6 seconds. We cloned commit a6cad12 into a clean Debian container with 3 CPUs and no project-specific setup.

Do book-to-skill's tests pass?

Yes: 627 of 627 passed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does book-to-skill have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use book-to-skill?

Anyone with image-only PDFs who expects built-in OCR: the extractor stops and tells you to run OCRmyPDF first.

What are the alternatives to book-to-skill?

RAGFlow, PaperQA, Marker. Our book-to-skill run installed 161 packages and consumed 6,075 MB, then passed all 627 tests in 15 seconds.

Setup3/5100-second install worked, but the environment occupied 6,075 MB
Docs5/5Install modes, formats, costs, fallbacks, and limits are spelled out
Community5/528,570 stars with issue and pull request activity in September 2026
Maturity3/5627 tests pass, though live extraction edge cases remain open

Who it’s for

Developers who repeatedly consult the same technical book, internal handbook, standards folder, or research set while working.
Claude Code, Codex, Copilot CLI, Amp, or Hermes Agent users who already understand where personal and project skills are stored.
Teams willing to inspect generated notes against the source before trusting them in technical decisions.
Readers who own or may process the source and will keep copyrighted derivatives private.

Who it’s NOT for

Anyone with image-only PDFs who expects built-in OCR: the extractor stops and tells you to run OCRmyPDF first.
Researchers who need page-faithful quotations or a citation trail: the output is synthesized guidance and explicitly avoids raw passages.
Teams whose document policy forbids text entering a cloud model: extraction is local, but the README says text sent to a hosted agent follows that provider's data terms.
People planning to share skills made from commercial books: the project warns that distributing a generated derivative can infringe the rights holder.
Users processing multi-column PDFs without inspecting the text: open issue 128 shows pdftotext -layout interleaving columns and inflating one file 26 times.
Disk-constrained environments: our full install occupied 6,075 MB despite the checkout itself measuring only 1.8 MB.

Setup reality

Our sandbox installed 161 packages in 100 seconds and used 6,075 MB on disk. The build succeeded in 6 seconds. Pytest finished in 15 seconds with all 627 tests passing and none failing. Pip-audit found 0 known vulnerabilities in the installed Python packages.

Full conversion needs a compatible agent host, access to that host's model, and a source file you may process. Plain text and Markdown need no extra extractor. PDFs, EPUB, DOCX, HTML, RTF, and ebook formats may use optional Python packages or external tools; scanned PDFs need a separate OCR pass.

The pip install provides only the extraction CLI, while cloning into an agent's skills folder provides the full workflow. Technical mode uses Docling for tables and code, and text mode chooses faster fallbacks. Generated files land in host-specific skill directories. Optional GitHub publication also requires an authenticated gh CLI and should remain private for copyrighted books.

Five output parts turn a document into reusable agent guidance

book-to-skill creates a core SKILL.md, per-chapter files, a glossary, a patterns file, and a cheatsheet. The aim is repeated application rather than a one-off book summary. An agent loads the core instructions first and opens a chapter only when a question points there. That makes sense for a technical reference, internal runbook set, or standards folder that keeps resurfacing during work. It is excessive for a document you need to read once and archive.

The split also changes what the artifact can prove. The documented core is about 4,000 tokens, each chapter is around 1,000, and the supporting files hold terms and decision rules. Those are synthesized notes, not source passages. A generated answer may be easier to apply than a PDF search result, yet a reader cannot treat it as a page-level citation. For claims that need quotations or evidence trails, pair the skill with the source or use a retrieval system built around citations.

The full converter lives in the skill, while pip installs extraction only

The documentation separates 2 installation paths. Cloning the repository into a supported skills folder registers the complete slash-command workflow. Installing from the Git repository with pip gives you the text extractor and its checks, without registering the agent skill or running the synthesis steps. That distinction is easy to miss if someone sees a Python package and assumes the CLI produces the final chapter files by itself. The existing agent host performs the analysis and writing.

Host paths vary. Claude Code uses ~/.claude/skills, Copilot CLI can use its own directory or the cross-agent location, and Hermes has personal and trusted project paths. A full run asks whether the material is technical or text-heavy, estimates input and output size, and waits for confirmation before generation. Optional publication uses the authenticated GitHub CLI and defaults to a private repository. The docs explicitly reserve public output for material whose rights permit sharing.

What happened when we ran it

Our sandbox installed book-to-skill in 100 seconds, adding 161 packages and occupying 6,075 MB. The build then completed in 6 seconds. commit a6cad12 was checked in a fresh unprivileged Debian container with 3 CPUs and 8 GB of RAM. The environment size is the surprising result: this 1.8 MB checkout and its 108 files led to more than 6 GB on disk after installation. Plan accordingly on a small CI runner or laptop.

Pytest ran all 627 tests in 15 seconds, with 627 passing and 0 failing. Pip-audit found 0 known vulnerabilities in the installed Python packages. The repository had roughly 10,507 source lines, a tests directory, and 3 CI workflow files, though no Dockerfile. These findings give the extraction code a much better baseline than a README-only agent prompt. They do not verify that a generated skill accurately represents every book, table, formula, or diagram.

One open PDF report found a 26-fold size blowup

Input format decides how much checking the result needs. Plain text and Markdown work without optional extractors. EPUB, DOCX, HTML, RTF, and ebook formats have package or application-specific routes. Scanned PDFs stop early because the project does no OCR; the user must run OCRmyPDF first. For technical PDFs, Docling aims to preserve code blocks and tables, while the faster text path tries pdftotext and Python fallbacks. The extractor's --check command reports what is available before a conversion.

Open issue 128 gives a concrete reason to inspect extracted text. On a 3-column, 142-page public document, pdftotext -layout interleaved reading order and padded the result to 26 times the expected size. The issue remained open when checked. Open issue 207, filed against the same a6cad12 commit we tested, says dependency preflight can offer redundant fallback parsers even when another parser is already installed. Passing 627 tests is reassuring, but it does not cancel these document-specific reports.

A 4,000-token core still sends source text through the chosen model

Extraction runs locally and the repository ships no copyrighted book content. Generation is a separate step performed by the agent host, so text supplied to a hosted model follows that provider's data terms. This boundary matters for company manuals, client material, and unpublished research. A team should identify which text leaves the machine, whether the model retains prompts, and where generated files are stored before converting a private document set. Local parsing alone is an incomplete privacy assessment.

Copyright creates another boundary. The project frames generated skills as synthesized derivatives and instructs the workflow to avoid raw passages. It also warns users to keep skills based on third-party books private. The optional publishing flow defaults to private and only accepts the bare response public as permission for public visibility. That is sensible friction. It still leaves the user responsible for the source license, access rights, and any redistribution decision.

Seven issues and 8 pull requests show active maintenance

GitHub recorded the last push on September 1, 2026, less than a month after the v1.4.0 release on August 10. The repository had 28,570 stars and 15 combined open issues and pull requests when fetched; a separate search split that total into 7 issues and 8 pull requests. The release fixed silent content-loss cases, CJK table-of-contents detection, unreadable files in batches, nested chapter scanning, and early failure for scanned PDFs. That is current, specific maintenance on the converter's hard parts.

book-to-skill is worth trying on one document whose content you know well. The 100-second install and 6,075 MB footprint are heavier than the 1.8 MB checkout suggests, while 627 passing tests support confidence in the code paths the suite covers. Review extracted text before synthesis, then compare several generated frameworks against the book. If page citations are the final product, PaperQA or another retrieval tool is a better fit than compiled notes.

Alternatives

ProjectWhat it isPick it when
RAGFlow gh↗A retrieval system that indexes document collections and supplies relevant passages to language models.pick this instead when you need query-time search across a large changing library rather than one compiled agent skill.
PaperQAA question-answering system for scientific papers with source citations.pick this instead when traceable answers from research literature matter more than reusable chapter guidance.
MarkerA document converter that writes PDFs to Markdown or JSON.pick this instead when faithful document extraction is the deliverable and you do not want an agent to synthesize a skill.

What people are saying

  1. [velocity-scout] virgiliojr94/book-to-skill
  2. [velocity-scout] Leutenegger/book-to-skill
  3. [github-trending] virgiliojr94/book-to-skill

Sources

  1. book-to-skill repository and README
  2. book-to-skill installation guide
  3. book-to-skill workflow guide
  4. book-to-skill performance methodology
  5. book-to-skill v1.4.0 release
  6. Multi-column PDF extraction report
  7. Dependency preflight report

More llm tools reviews

OB1 · LlamaFactory · verl · skills-hub · aidlc-workflows · notebooklm-py · the whole board →