Writing & Content

Translate Book

Translate entire PDF/DOCX/EPUB books into any language with parallel subagents, glossary-enforced terminology, and multi-format output.

55/ 100
Use with care

Useful, but reliability, evidence or controls still have material gaps.

See how it was scored ↓
Works as-is in
Codex · Claude Code
Stars
★ 2.1k
Last updated
13d ago
License
MIT
book-translationepubpdfdocx
+4pandoccalibreparallel-subagentsglossary-terminology

What does this skill do, and when should you use it?

translate-book is an agent skill for Codex, Claude Code, and OpenClaw that translates entire PDF, DOCX, or EPUB books into a target language (Chinese by default; en, ja, ko, fr, de, es also documented). It converts the source with Calibre into chunked Markdown, then farms each chunk to an isolated subagent running in parallel, keeping names, pronouns, and terminology consistent across the book via a hand-editable glossary, neighbor excerpts, and per-chunk metadata feedback. Outputs pass SHA-256 manifest validation before being merged and rebuilt into HTML, DOCX, EPUB, and PDF with Pandoc and Calibre. MIT-licensed, and explicitly an independent rewrite inspired by wizlijun/claude_translater, not a fork.

The skill runs a multi-step pipeline: 1) scripts/convert.py calls Calibre (ebook-convert via HTMLZ) to convert PDF/DOCX/EPUB into Markdown split into ~6000-char chunks (chunk0001.md, ...), writing manifest. (per-chunk SHA-256) and source_fingerprint.; 2) it samples first/last/middle chunks to extract proper nouns into a hand-editable glossary. (v2, with aliases, gender, confidence), and glossary.py counts frequencies and emits per-chunk term tables; 3) run_state.py plans selective re-translation, skipping chunks whose outputs and glossary terms are unchanged; 4) batches of up to 8 subagents by default each translate one chunk with an injected term table and ~300-char read-only previous/next excerpts, emitting output_chunkNNNN.meta. that merge_meta.py conservatively merges into the glossary at batch boundaries; 5) merge_and_build.py validates 1:1 outputs, matching hashes, and no blank chunks, merges to output.md, generates HTML with a floating TOC via Pandoc, then DOCX/EPUB/PDF via Calibre, with --cover and --export-name options.

Good fit
  • An indie translator or publisher with an English EPUB who wants a low-cost Chinese edition delivered as EPUB/DOCX
  • A technical reader who only has a PDF published in another language and wants the whole book in their native language before deep reading
  • A translation team producing a first-pass machine draft for human polish — the glossary is hand-editable and only affected chunks get re-translated
  • Long-running serialized projects needing resumability: interrupted runs skip completed chunks, and a swapped source file aborts via fingerprint mismatch instead of silently reusing stale chunks
  • Localization work where names, places, and terms must stay consistent across 100+ chunks, avoiding drift from session-by-session translation

How do you install this skill?

Before you use it
  • Static review only — no code was executed: the orchestration main path (subagent translation, meta merge, run_state planning) has no test coverage; validate with a small file before a real book run.
  • allowed-tools includes Bash and Agent (broad); --cleanup deletes intermediate files — omit it explicitly if you need intermediates.
  • Ubuntu's Calibre 7.6.0 has a known EPUB generation bug (disclosed by the author); EPUB output may fail, and after changing title/templates you must delete stale artifacts manually.
  • Translation quality depends on the underlying LLM; the author acknowledges whole-book terminology/fluency validation is not done — human review is required for important books.
  • Local Calibre, Pandoc and Python dependencies are required; missing pieces degrade individual output formats silently — watch the format-failure summary in the final report.
Before you start
Your agent needs
  • Shell / CLI
  • Network access
  • Local filesystem
Install first
  • Python 3
  • pypandoc
  • beautifulsoup4 (optional)
  • Pandoc
  • Calibre (ebook-convert)

Prerequisites: Codex, Claude Code, or OpenClaw installed and ready to run skills; Calibre (ebook-convert on PATH); Pandoc; Python 3 with pip install pypandoc (optional beautifulsoup4 for better TOC). Install via: Codex — npx skills add deusyu/translate-book -a codex -g, or git clone https://github.com/deusyu/translate-book.git ~/.agents/skills/translate-book; Claude Code — npx skills add deusyu/translate-book -a claude-code -g, or clone to ~/.claude/skills/translate-book; OpenClaw — openclaw skills install @deusyu/translate-book. Restart Codex if the skill does not appear.

Generic route: install into Claude Code manually (macOS / Linux)
git clone --depth 1 https://github.com/deusyu/translate-book.git ~/.claude/skills/translate-book

Generated from the source repository and skill path; it copies only this skill's folder. If the author's install steps above differ, follow those first. To scope it to one project, replace ~/.claude/skills with that project's .claude/skills.

How do you use this skill?

In Claude Code / OpenClaw, just ask the agent: translate /path/to/book.pdf to Chinese, or use the slash command /translate-book translate /path/to/book.pdf to Japanese. In Codex, enter $translate-book Translate /path/to/book.pdf into Chinese. (Codex can also auto-select the skill when your request matches its description.) Mention optional parameters in your request: target language (default zh), concurrency (default 8), a custom temp root, an EPUB cover image, an export alias name, and any custom translation instructions. Outputs land in {book_name}_temp/: output.md, book.html (floating TOC), book.docx, book.epub, book.pdf.

What are this skill's strengths and limitations?

Pros
  • One isolated subagent per chunk (8 concurrent by default) avoids the context accumulation and output truncation typical of single-session whole-book translation
  • Thorough terminology-consistency engineering: sampled glossary, frequency counting, per-chunk hard constraints, sub-agent metadata feedback, and selective re-translation after hand edits
  • Resumable with integrity guarantees: manifest SHA-256 validation, source fingerprinting, automatic single retry for blank/missing chunks
  • One pipeline yields Markdown/HTML/DOCX/EPUB/PDF, with explicit prerequisites and a detailed troubleshooting table
  • Clean design principles: scripts do bookkeeping, LLMs do semantic merging, single writer for shared state
Limitations
  • Heavy local dependencies: Calibre, Pandoc, Python 3, and pypandoc must all be installed; any missing piece breaks format conversion
  • Parallel per-chunk translation implies substantial token/API cost for chunk-heavy books; no usage estimates are provided
  • EPUB covers must be passed explicitly via --cover; auto-extraction from EPUB is explicitly out of scope
  • Quality is validated only against checked-in baseline sample books (e.g., standard-alice.epub); no organic real-book quality evaluation is published, and Phase 4 bootstrap warm-up remains experimental
  • Unconventional contribution flow: the maintainer asks for issues before PRs and may close pull requests
  • Neighbor context and glossary mechanisms mitigate but do not eliminate cross-chunk pronoun/gender errors; the README roadmap admits full-book organic validation is future work

How does this skill compare with similar options?

Side by side with related skills; every score comes from the same FSRS standard.

Skill FS score Stars Last updated License
Translate Book this page 55 · Use with care ★ 2.1k 13d ago MIT
Resume Tailoring Skill 51 · Use with care ★ 779 7mo ago MIT
gzh-design — WeChat Official Account Typesetting Skill 58 · Recommended ★ 4k 16d ago NOASSERTION
Beautiful Article: Single-File Editorial Web Pages 51 · Use with care ★ 13k 14d ago MIT
Paper to Chinese Patent Draft 56 · Use with care ★ 48k 11d ago Apache-2.0

The README names wizlijun/claude_translater as its inspiration: the original uses shell scripts as the entry point, coordinating the Claude CLI across step scripts. This project restructures that as an agent skill with parallel subagent translation, plus manifest-driven integrity checks, resumable runs, and unified multi-format output — the author stresses the structure and implementation differ significantly, making it an independent project rather than a fork.

How did FollowSkills review this skill?

FollowSkills review · FSRS-2.0
Use with care
55/ 100 5-point scale 2.8 / 5
The upstream repository has new commits since this review. The score still applies to the reviewed revision shown and may not cover the latest changes.
1Trust15 / 25 · 3.0/5

SKILL.md only reads/writes a user-specified working directory, asks the user when parameters are missing, uses fingerprints and manifests to prevent stale reuse, applies --cleanup only after success and omittable; no network exfiltration or overreach found. Deducted for: broad allowed-tools including Bash/Agent, and external effects (temp-dir deletion, overwriting export files) lacking explicit user confirmation.

2Reliability10 / 20 · 2.5/5

Failure modes (blank chunks, manifest failures, fingerprint mismatch, Calibre-missing degradation) are thoroughly documented; unit tests cover convert/chunk_context/calibre wrapper and CI runs them. Deducted for: the core orchestration path (subagent translation, meta merge, run_state planning) is untested and script sources were not provided for this review; static review caps at 10.

3Adaptability10 / 15 · 3.3/5

Target scenario (whole-book translation to zh/en/ja etc.), I/O formats, non-fit boundaries (EPUB cover extraction explicitly out of scope), and trigger descriptions are clear; bilingual docs; dependencies are local Calibre/Pandoc plus the LLM runtime, no unreachable overseas service. Deducted for: semantic triggers rely mainly on description matching, and no declared limits for huge or scanned PDFs.

4Convention10 / 15 · 3.3/5

Well-layered docs (SKILL.md, bilingual READMEs, AGENTS.md/CLAUDE.md), MIT license, git-tag version anchors, explicit maintainer workflow and known issues (Calibre 7.6 EPUB bug). Deducted for: no standalone CHANGELOG, release flow depends on .claude/commands/release.md not present in evidence, and PR-unfriendly contribution policy may hurt sustainability.

5Effectiveness6 / 15 · 2.0/5

Claimed whole-book parallel translation, multi-format output and terminology consistency have clear marginal value over manual work and the workflow is self-consistent. Deducted for: no committed representative real-book output as evidence; the author admits full-book organic quality validation is future work (Phase 4); static review cannot confirm outputs are directly usable.

6Verifiability4 / 10 · 2.0/5

A CI workflow runs unittest and committed tests cover key sub-paths (page-number cleanup, source fingerprinting, neighbor context); issue/PR references are traceable. Deducted for: tests are mock-driven unit tests; the orchestration main path and end-to-end quality lack independently reproducible evidence; nothing was executed in this static review.

1 2 3 4 5 6

Open a dimension to read why it scored that way

Reviewed Sep 10, 2026 Reviewed revision 8e7ab6499bb5 Review evidence[1][2][3][4][5][6][7][8][9][10]

Evidence confidence:Low — Mostly static review, author material or a limited demo; useful for discovery, not high-risk decisions.

See the full review method →

FAQ

How much does it cost to translate a book?
The source gives no cost data. What is certain: the book is split into ~6000-char chunks, each translated by its own subagent (8 concurrent by default), plus overhead for sampling, glossary building, and batch merging — a chunk-heavy book will consume significant API usage.
Which input and output formats are supported?
Inputs: PDF, DOCX, EPUB (converted by Calibre). Outputs: merged Markdown, HTML with a floating TOC, DOCX, EPUB, and PDF. EPUB/PDF generation requires Calibre.
What if a run is interrupted? Can I edit the glossary?
Just re-run the skill — chunks with valid existing outputs are skipped and missing chunks are retried once. glossary. is hand-editable and never overwritten; run_state.py ensures later runs re-translate only chunks affected by your term changes.
Why do name translations drift, and does this fully fix it?
That is issue #7, being solved in phases. Shipped mechanisms — glossary hard constraints, alias handling, neighbor context, selective re-translation — significantly reduce but do not guarantee elimination of drift; blank chunks and malformed metadata are surfaced in the verification report.

Related skills