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.
npx skills add aiocean/claude-plugins --skill aio-epub-uploadgit clone --depth 1 https://github.com/aiocean/claude-pluginsWrote 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.
[](https://agentmods.dev/skills/aiocean/claude-plugins/aio-epub-upload)<a href="https://agentmods.dev/skills/aiocean/claude-plugins/aio-epub-upload"><img src="https://agentmods.dev/badge/skills/aiocean/claude-plugins/aio-epub-upload/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.
<a href="https://agentmods.dev/skills/aiocean/claude-plugins/aio-epub-upload"><img src="https://agentmods.dev/badge/skills/aiocean/claude-plugins/aio-epub-upload.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00066 | $0.01026 |
| Opus 5.5 | $0.00026 | $0.00410 |
| Sonnet 5.5 | $0.00013 | $0.00205 |
| Haiku 4.5 | $0.00007 | $0.00103 |
Grade A, and why
aio-epub-upload scanned grade A with 1 finding 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 1mo ago.
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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
import json, urllib.request, os How it starts
The opening of the file, as written. The whole thing — 141 lines — stays where its author put it; the contents beside it link to each section on GitHub.
EPUB Upload & Prepare
Upload an EPUB file to the translation server and prepare it for translation.
Prerequisite: Cần có API key. Chưa có? Dùng
aio-epub-setuptrước.
API Setup
import json, urllib.request, os
BASE = "https://read-api.aiocean.dev/ListBooks.v1.BookService"
KEY = os.environ.get("AIO_EPUB_API_KEY", "")
def api(method, body):
data = json.dumps(body).encode('utf-8')
req = urllib.request.Request(f"{BASE}/{method}", data=data, headers={
"Content-Type": "application/json",
"X-License-Key": KEY
})
with urllib.request.urlopen(req) as resp:
return json.loads(resp.read())
Workflow
1. Upload EPUB
Read the EPUB file as bytes and upload:
import base64
with open("path/to/book.epub", "rb") as f:
epub_bytes = f.read()
# UploadEpub is streaming — use raw HTTP
data = json.dumps({
"epubData": base64.b64encode(epub_bytes).decode(),
"filename": "book.epub"
}).encode('utf-8')
req = urllib.request.Request(f"{BASE}/UploadEpub", data=data, headers={
"Content-Type": "application/json",
"X-License-Key": KEY
})
with urllib.request.urlopen(req) as resp:
result = json.loads(resp.read())
book_id = result["bookId"]
print(f"Uploaded: {book_id}")
2. Prepare Book (if not auto-prepared)
# PrepareBook cleans HTML, marks translatable content, generates guidelines
result = api("PrepareBook", {"bookId": book_id})
print(result["message"])
3. Generate Translation Guideline
result = api("GenerateGuideline", {
"bookId": book_id,
"sourceLanguage": "en",
"targetLanguage": "vi",
"templateName": "literary",
"modelId": "" # uses default model
})
print(result["guideline"])
4. Verify Setup
# Check book exists and has content
book = api("GetBook", {"bookId": book_id})
print(f"Title: {book['book']['title']}")
print(f"Author: {book['book']['author']}")
# Check TOC
toc = api("GetTableOfContent", {"bookId": book_id})
for item in toc["tableOfContent"]["items"]:
print(f" {item['title']} -> {item['filePath']}")
# Check translation progress (should be 0%)
progress = api("GetTranslationProgress", {"bookId": book_id})
print(f"Progress: {progress['progress']['translationPercentage']:.1f}%")
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.
- 1mo ago First seen · 141 lines · 66 tokens per session scan A 56a56993c6e5
aio-epub-upload is a skill published in the GitHub repository aiocean/claude-plugins (4 stars, last pushed 1mo ago), licensed MIT. It adds 66 tokens to every session and 1,026 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
guide-recap
Transform CHANGELOG entries into social content (LinkedIn, Twitter/X, Newsletter, Slack) in FR + EN. Use after releases or weekly to generate ready-to-post content from guide updates.
office-docx
Use when the user asks to create, edit, inspect, polish, verify, or deliver Word .docx documents, Google Docs-targeted drafts, business briefs, forms, reports, tables, checklists, redraft-ready document sections, or PDF/Word source-to-DOCX transformations.
office-pptx
Use when the user asks to create, inspect, verify, polish, or deliver PowerPoint .pptx decks, Google Slides-targeted deck artifacts, strategy narratives, operating reviews, pitch decks, teaching decks, section slides, bullet slides, or source-to-PPTX transformations.
memstack-business-scope-of-work
Use this skill when the user says 'scope of work', 'SOW', 'define scope', 'project scope', 'write SOW', 'scope document', or is defining project boundaries, deliverables, and acceptance criteria for a formal engagement. Do NOT use for proposals, contracts, or invoicing.
memstack-business-invoice-generator
Use this skill when the user says 'invoice', 'generate invoice', 'create invoice', 'bill client', 'line items', 'payment terms', or needs professional invoices with tax calculations and payment instructions. Do NOT use for contracts or financial projections.
rtl-internationalization
Right-to-left (RTL) layout and bidirectional text support for Hebrew, Arabic, Persian, and Urdu interfaces. Use when building UI that must support RTL languages, converting physical CSS/Tailwind properties to logical ones, handling mixed-direction (bidi) text, mirroring directional icons, or testing an app with…