epub-translate

epub-translate is a skill for Claude Code, Codex from eugenepyvovarov/mcpbundler-agent-skills-marketplace. It costs 93 tokens per session (1,233 once invoked), scanned A, original, MIT.

A workflow for translating EPUB ebooks, which are digital books, into another language while keeping their layout and markup intact. It extracts the book text, sends it for translation, updates language details, and packages a new EPUB.

In plain words
What is it for?
Setting up translation, extracting ordered text units, translating them through the OpenAI API, applying the translations, repackaging the EPUB, and checking the output.
Why use it?
It avoids manually editing the many XHTML files inside an EPUB and provides a way to validate the translated book as a usable ebook.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: mentions Codex.

Good fit Setting up translation, extracting ordered text units, translating them through the OpenAI API, applying the translations, repackaging the EPUB, and checking the output.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/eugenepyvovarov/mcpbundler-agent-skills-marketplace/epub-translate
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add eugenepyvovarov/mcpbundler-agent-skills-marketplace --skill epub-translate
Clone the repo
git clone --depth 1 https://github.com/eugenepyvovarov/mcpbundler-agent-skills-marketplace

Made for: Claude Code, Codex.

Its marketplace also offers this one on its own, as the plugin epub-translate/plugin install epub-translate after adding the marketplace above.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for epub-translate

README.md
[![agentmods](https://agentmods.dev/badge/skills/eugenepyvovarov/mcpbundler-agent-skills-marketplace/epub-translate/github.svg)](https://agentmods.dev/skills/eugenepyvovarov/mcpbundler-agent-skills-marketplace/epub-translate)
Your own site
<a href="https://agentmods.dev/skills/eugenepyvovarov/mcpbundler-agent-skills-marketplace/epub-translate"><img src="https://agentmods.dev/badge/skills/eugenepyvovarov/mcpbundler-agent-skills-marketplace/epub-translate/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for epub-translate

Your own site · 80×15
<a href="https://agentmods.dev/skills/eugenepyvovarov/mcpbundler-agent-skills-marketplace/epub-translate"><img src="https://agentmods.dev/badge/skills/eugenepyvovarov/mcpbundler-agent-skills-marketplace/epub-translate.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 93 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,233 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00093 $0.01233
Opus 5 $0.00046 $0.00616
Sonnet 5 $0.00019 $0.00247
Haiku 4.5 $0.00009 $0.00123

Measured 12d ago against content hash c1a2d1ade5ef, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

epub-translate scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/epub_translate.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

epub-translate/SKILL.md · 71 lines

How it starts

The opening of the file, as written. The whole thing — 71 lines — stays where its author put it; the contents beside it link to each section on GitHub.

EPUB Translate

Workflow

  1. One-time setup (writes .skills-data/epub-translate/.env): scripts/epub-translate setup
  2. Extract translation units: scripts/epub-translate extract --epub /path/book.epub
  3. Translate via OpenAI API: scripts/epub-translate translate --job-dir <job-dir> --target-lang <bcp47> [--fraction 0.1]
  4. Apply + repack: scripts/epub-translate apply --job-dir <job-dir> --translations <job-dir>/translations.jsonl --target-lang <bcp47> --out-epub /path/book.<bcp47>.epub
  5. Optional: validate output: scripts/epub-translate validate --epub /path/book.<bcp47>.epub

Commands

  • scripts/epub-translate setup:
    • Prompts for OPENAI_API_KEY (saved to .skills-data/epub-translate/.env).
    • Prompts for default OPENAI_MODEL (e.g. gpt-5.1, gpt-5-mini).
  • scripts/epub-translate extract ...:
    • Unzips the EPUB into a per-run job dir under .skills-data/epub-translate/tmp/.
    • Parses META-INF/container.xml → package document (.opf) → manifest/spine.
    • Extracts XHTML <head><title> and leaf block-level XHTML fragments (inner HTML) in reading order into units.jsonl.
    • Optional: include OPF dc:title via --include-opf-title.
  • scripts/epub-translate translate ...:
    • Reads <job-dir>/units.jsonl and writes <job-dir>/translations.jsonl.
    • Uses the OpenAI Responses API (https://api.openai.com/v1/responses).
    • Resume-safe by default: if translations.jsonl already contains some ids, they are skipped.
  • scripts/epub-translate apply ...:
    • Applies translated fragments back into the unpacked XHTML files.
    • Updates dc:language in the OPF and xml:lang in the XHTML.
    • Repackages as a valid EPUB (writes mimetype first, stored/uncompressed).
  • scripts/epub-translate validate ...: checks basic EPUB container invariants.

JSONL formats

units.jsonl (input to translation) has one JSON object per line, e.g.:

{"id":1,"kind":"xhtml-fragment","doc_path":"EPUB/chapter1.xhtml","xpath":"/html[1]/body[1]/p[3]","tag":"p","source_inner_html":"Hello <em>world</em>!","source_markup_hash":"..."}

Read the full file on GitHub · 71 lines

Files

What ships with it

5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 71 lines · 93 tokens per session scan A c1a2d1ade5ef

Subscribe to this mod's changes

epub-translate is a skill published in the GitHub repository eugenepyvovarov/mcpbundler-agent-skills-marketplace (12 stars, last pushed 6mo ago), licensed MIT. It adds 93 tokens to every session and 1,233 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

chinese-documentation

A Chinese technical-documentation style guide covering spacing, punctuation, numbers, terminology, and links when Chinese and English appear together.

jnMetaCode/superpowers-zh · 62 tokens

json-ui

CRITICAL: Use for json-ui component rendering and development. Triggers on: json-ui, json render, component catalog, report render, HTML report, I18nString, i18n, bilingual, language switch, dual language, PaperHeader, AuthorList, Abstract, MetricsGrid, Section, Highlight, Zod schema, catalog.ts, cli.ts…

actionbook/actionbook · 118 tokens

comet-bilingual-docs

A workflow for keeping Comet documentation in Chinese and English aligned across READMEs, skills, release notes, and website pages. It preserves confirmed wording, repository structure, examples, commands, links, and configuration names.

rpamis/comet · 70 tokens

dubbing

Dub audio and video into other languages using the ElevenLabs Dubbing API (dubbingv2), preserving the original speakers' voices. Use when translating videos, podcasts, or recordings into other languages, localizing media content, reviewing or correcting dubbing transcripts and translations, or regenerating a dub after…

elevenlabs/skills · 65 tokens

baocut

BaoCut-only operator for the installed bcut CLI and .bcut projects. Implicitly trigger only when the request explicitly names BaoCut or bcut, targets a .bcut project or BaoCut Subtitle Studio, or continues a BaoCut workflow already established in the conversation. Do not trigger solely for generic audio or video…

JimLiu/baocut · 160 tokens

iflytek-text-proofread

A tool that checks Chinese writing through iFlytek’s official document-proofreading service. It looks for spelling, punctuation, wording, factual, terminology, and sensitive-content problems.

iflytek/iFly-Skills · 88 tokens