From image-annotation
Bundle a set of (typically annotated) images into a single PDF — for tutorials, bug reports, step-by-step guides, or printable documentation. Preserves order, leaves source images untouched, and uses img2pdf for lossless inclusion when available.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin image-annotationThis skill uses the workspace's default tool permissions.
Combine a set of images, in order, into a single PDF document. Commonly used to produce a step-by-step tutorial after running `annotate` over a series of screenshots.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Combine a set of images, in order, into a single PDF document. Commonly used to produce a step-by-step tutorial after running annotate over a series of screenshots.
Never modifies the input images. Only writes the single PDF at --output.
bash "$CLAUDE_PLUGIN_ROOT/scripts/to-pdf.sh" \
--output "$OUT_PDF" \
FILE [FILE ...]
Or with a glob (expanded by the shell, alphabetical order):
bash "$CLAUDE_PLUGIN_ROOT/scripts/to-pdf.sh" \
--output "$OUT_PDF" \
--glob "/path/to/annotated/*.png"
The PDF page order follows the argument order. If the user has filenames like step-01-..., step-02-..., alphabetical glob expansion gives the right order. If they have unordered names, list the files explicitly in the order they want.
The script prefers img2pdf (lossless, no re-encoding for JPEGs — much smaller PDFs) and falls back to magick if img2pdf isn't installed. Run the install-deps skill once to get img2pdf.
screenshot × N → series of PNGs in ~/Pictures/Screenshots/annotate × N → annotated copies in ~/Pictures/Screenshots/annotated/batch-to-pdf → ~/Documents/tutorial.pdf from the annotated/ folderEncourage the user to put the PDF outside the screenshots tree (e.g. ~/Documents/) so it doesn't get swept up by future glob runs.