用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/nodetool-ai/nodetool --skill sandbox-pdflib命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Produce a whole campaign in NodeTool rather than one video — entity sheets for a product and model, a set of still campaign frames, several short social cuts and a long film, all on one locked grade. Use when the user asks for a launch kit, a campaign, an asset pack, a content set, "a bunch of assets", or names several deliverables in different aspect ratios from one product. Not for a single video (use product-commercial or ugc-video).
Direct a polished product film in NodeTool — pack shots, macro hero spots, luxury commercials, brand films on location, with or without talent. Use when the user wants an ad that looks shot on a camera rather than a phone, mentions a pack shot, hero shot, product film, brand spot, cyclorama or studio lighting, or names a product as the subject of a multi-shot video. Not for self-filmed or creator-style pieces (use ugc-video).
Direct video where a written voiceover drives the picture — faceless explainers, narrated b-roll, documentary segments, tutorials, corporate and educational video with no on-camera talent. Use when the user asks for an explainer, a voiceover video, a narrated piece, a faceless video, or says the script comes first. Also use when spoken words must time the cut. Not for talking-head or creator video (use ugc-video).
正在显示 SKILL.md
| name | sandbox-pdflib |
| description | Build and merge PDF files in a Code node or CodeAct action, with pdf-lib running on the host |
Specifier: @nodetool-ai/sandbox-pdflib. Import it at the top of the body.
This pack writes PDFs. To extract text from an existing file, use
@nodetool-ai/sandbox-pdf instead.
Coordinates are top-left, in PDF points (72 per inch). A US Letter page is 612×792.
import { build } from "@nodetool-ai/sandbox-pdflib";
const bytes = await build({
pages: [
{
width: 612,
height: 792,
items: [
{ type: "text", x: 72, y: 72, text: "Hello", size: 24, color: "#111827" },
{ type: "image", x: 72, y: 120, width: 200, height: 120, data: inputs.logo }
]
}
]
});
await workspace.writeBytes("hello.pdf", bytes);
Item types:
text — x, y, text, size (points, default 12), color (hex)image — x, y, width, height, data (Uint8Array PNG or JPEG)import { merge } from "@nodetool-ai/sandbox-pdflib";
const bytes = await merge([inputs.first, inputs.second]);
await workspace.writeBytes("combined.pdf", bytes);
Each entry is a Uint8Array of an existing PDF.
build and merge are async and return a Uint8Array.merge).