Agent Skillsnodetool-ai/nodetool › sandbox-epub

sandbox-epub

GitHub

提供在沙箱环境中读取 EPUB 电子书元数据、目录及提取章节文本的能力,支持异步操作与自定义分隔符。

packages/sandbox-packs/sandbox-epub/SKILL.md nodetool-ai/nodetool

Trigger Scenarios

需要解析或提取 EPUB 电子书内容时 获取电子书元数据(如标题、作者)或目录结构时

Install

npx skills add nodetool-ai/nodetool --skill sandbox-epub -g -y
More Options

Non-standard path

npx skills add https://github.com/nodetool-ai/nodetool/tree/main/packages/sandbox-packs/sandbox-epub -g -y

Use without installing

npx skills use nodetool-ai/nodetool@sandbox-epub

指定 Agent (Claude Code)

npx skills add nodetool-ai/nodetool --skill sandbox-epub -a claude-code -g -y

安装 repo 全部 skill

npx skills add nodetool-ai/nodetool --all -g -y

预览 repo 内 skill

npx skills add nodetool-ai/nodetool --list

SKILL.md

Frontmatter
{
    "name": "sandbox-epub",
    "description": "Read an EPUB's metadata, table of contents, and chapters in a Code node or CodeAct action, with epub2 running on the host"
}

EPUB e-books in the sandbox

Specifier: @nodetool-ai/sandbox-epub. Import it at the top of the body.

epub2 reads from a file path, not a buffer, so this pack is a host module: the host stages your bytes in a temp file for the call and removes it afterward. The import resolves to a generated facade over NodeTool's own implementation.

metadata — title, author, language, and the rest

import { metadata } from "@nodetool-ai/sandbox-epub";

const bytes = await workspace.readBytes("book.epub");
const meta = await metadata(bytes);   // { title, creator, language, publisher, ... }

tableOfContents — chapter titles in reading order

import { tableOfContents } from "@nodetool-ai/sandbox-epub";

const toc = await tableOfContents(bytes);
// [{ id, title, href, order }, ...]

extractText — every chapter, concatenated

import { extractText } from "@nodetool-ai/sandbox-epub";

const text = await extractText(bytes);
const withCustomBreaks = await extractText(bytes, { chapterSeparator: "\n\n---\n\n" });

chapterSeparator defaults to "\n\n".

extractChapters — each chapter as its own item

import { extractChapters } from "@nodetool-ai/sandbox-epub";

const chapters = await extractChapters(bytes);
// [{ id, title, href, text }, ...]

Get the bytes from workspace.readBytes, or from a fetched body with await response.bytes().

Gotchas

  • Every export is async.
  • 10 MB per book. Larger input is refused by name.
  • HTML is stripped, not rendered. extractText/extractChapters return plain text — no headings, links, or images survive the conversion.

Version History

  • a6a7e57 Current 2026-08-20 09:52

Same Skill Collection

.claude/skills/ask-matt/SKILL.md
.claude/skills/ast-grep-outline/SKILL.md
.claude/skills/ast-grep/SKILL.md
.claude/skills/codebase-design/SKILL.md
.claude/skills/companion-clis/SKILL.md
.claude/skills/diagnosing-bugs/SKILL.md
.claude/skills/domain-modeling/SKILL.md
.claude/skills/flash/SKILL.md
.claude/skills/implement/SKILL.md
.claude/skills/improve-codebase-architecture/SKILL.md
.claude/skills/nodetool-api-reference/SKILL.md
.claude/skills/nodetool-browser-agent/SKILL.md
.claude/skills/nodetool-chat-cli/SKILL.md
.claude/skills/nodetool-custom-node-developer/SKILL.md
.claude/skills/nodetool-deployment/SKILL.md
.claude/skills/nodetool-model-provider-config/SKILL.md
.claude/skills/nodetool-rag-indexing/SKILL.md
.claude/skills/nodetool-troubleshooter/SKILL.md
.claude/skills/nodetool-workflow-builder/SKILL.md
.claude/skills/prototype/SKILL.md
.claude/skills/research/SKILL.md
.claude/skills/resolving-merge-conflicts/SKILL.md
.claude/skills/setup-matt-pocock-skills/SKILL.md
.claude/skills/tdd/SKILL.md
.claude/skills/to-spec/SKILL.md
.claude/skills/to-tickets/SKILL.md
.claude/skills/triage/SKILL.md
.claude/skills/wayfinder/SKILL.md
.claude/skills/wizard/SKILL.md
.claude/skills/yts806379-everything-claude-code-e2e-testing/SKILL.md
packages/sandbox-packs/sandbox-aws/SKILL.md
packages/sandbox-packs/sandbox-chrono/SKILL.md
packages/sandbox-packs/sandbox-color/SKILL.md
packages/sandbox-packs/sandbox-csv/SKILL.md
packages/sandbox-packs/sandbox-dates/SKILL.md
packages/sandbox-packs/sandbox-decimal/SKILL.md
packages/sandbox-packs/sandbox-diff/SKILL.md
packages/sandbox-packs/sandbox-docx/SKILL.md
packages/sandbox-packs/sandbox-dsl/SKILL.md
packages/sandbox-packs/sandbox-exif/SKILL.md
packages/sandbox-packs/sandbox-expr/SKILL.md
packages/sandbox-packs/sandbox-fabric/SKILL.md
packages/sandbox-packs/sandbox-flow/SKILL.md
packages/sandbox-packs/sandbox-gif/SKILL.md
packages/sandbox-packs/sandbox-html/SKILL.md
packages/sandbox-packs/sandbox-ics/SKILL.md
packages/sandbox-packs/sandbox-jmespath/SKILL.md
packages/sandbox-packs/sandbox-mammoth/SKILL.md
packages/sandbox-packs/sandbox-markdown/SKILL.md

Metadata

Files
0
Version
a6a7e57
Hash
a6123add
Indexed
2026-08-20 09:52

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-25 14:03
浙ICP备14020137号-1 $방문자$