Interactive PDF viewer. Use when the user wants to open, show, or view a PDF and collaborate on it visually — annotate, highlight, stamp, fill form fields, place signature/initials, or review markup together. Not for summarization or text extraction (use native Read instead).
npx skills add https://github.com/anthropics/knowledge-work-plugins --skill view-pdf
You have access to a local PDF server that renders documents in a live
viewer and lets you annotate, fill forms, and place signatures with
real-time visual feedback.
Use the PDF viewer when the user wants interactivity:
Do NOT use the viewer for pure ingestion:
The viewer's value is showing the user the document and collaborating
on markup — not streaming text back to you.
list_pdfsList available local PDFs and allowed local directories. No arguments.
display_pdfOpen a PDF in the interactive viewer. Call once per document.
url — local file path or HTTPS URLpage — initial page (optional, default 1)elicit_form_inputs — if true, prompts the user to fill formfields before displaying (use for interactive form-filling)
Returns a viewUUID — pass this to every interact call. Calling
display_pdf again creates a separate viewer; interact calls with
the new UUID won't reach the one the user is looking at.
Also returns formFields (name, type, page, bounding box) if the PDF
has fillable fields — use these coordinates for signature placement.
interactAll follow-up actions after display_pdf. Pass viewUUID plus one or
more commands. Batch multiple commands in one call via the
commands array — they run sequentially. End batches with
get_screenshot to verify changes visually.
Annotation actions:
add_annotations — add markup (see types below)update_annotations — modify existing (id + type required)remove_annotations — delete by id arrayhighlight_text — auto-find text by query and highlight it(preferred over manual rects for text markup)
Navigation actions:
navigate (page), search (query), find (query, silent),search_navigate (matchIndex), zoom (scale 0.5–3.0)
Extraction actions:
get_text — extract text from page ranges (max 20 pages). Use forreading content to decide what to annotate, NOT for summarization.
get_screenshot — capture a page as an image (verify your annotations)Form action:
fill_form — fill named fields: fields: [{name, value}, ...]All annotations need id (unique string), type, page (1-indexed).
Coordinates are PDF points (1/72 inch), origin top-left, Y increases
downward. US Letter is 612×792pt.
| Type | Key properties | Use for |
|------|----------------|---------|
| highlight | rects, color?, content? | Mark important text |
| underline | rects, color? | Emphasize terms |
| strikethrough | rects, color? | Mark deletions |
| note | x, y, content, color? | Sticky-note comments |
| freetext | x, y, content, fontSize? | Visible text on page |
| rectangle | x, y, width, height, color?, fillColor? | Box regions |
| circle | x, y, width, height, color?, fillColor? | Circle regions |
| line | x1, y1, x2, y2, color? | Draw lines/arrows |
| stamp | x, y, label, color?, rotation? | APPROVED, DRAFT, CONFIDENTIAL, etc. |
| image | imageUrl, x?, y?, width?, height? | Signatures, initials, logos |
Image annotations accept a local file path or HTTPS URL (no data:
URIs). Dimensions auto-detected if omitted. Users can also drag & drop
images directly onto the viewer.
display_pdf to open the documentinteract → get_text on relevant page range to understand contentinteract → add_annotations + get_screenshotviewer toolbar
Unlike headless form tools, this gives the user **live visual
feedback** and handles forms with cryptic/unnamed fields where the
label is printed on the page rather than in field metadata.
display_pdf — inspect returned formFields (name, type, page,bounding box)
Text1, Field_7), get_screenshotthe pages and match bounding boxes to visual labels
context
interact → fill_form, then get_screenshot to show the resultFor simple well-labeled forms, display_pdf with
elicit_form_inputs: true prompts the user upfront instead.
display_pdf, check formFields for signature-type fields or askwhich page/position
interact → add_annotations with type: "image" at the targetcoordinates
get_screenshot to confirm placementDisclaimer: This places a visual signature image. It is not a
certified or cryptographic digital signature.
/abs/ URLs auto-convert to PDF)direct PDF link, not the landing page)
Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks
Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.
Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx filename, regardless of what they plan to do with the content afterward. If a .pptx file needs to be opened, created, or touched, use this skill.
Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax. Use when working with .md files in Obsidian, or when the user mentions wikilinks, callouts, frontmatter, tags, embeds, or Obsidian notes.
Phylogenetic tree toolkit (ETE). Tree manipulation (Newick/NHX), evolutionary event detection, orthology/paralogy, NCBI taxonomy, visualization (PDF/SVG), for phylogenomics.
Low-level plotting library for full customization. Use when you need fine-grained control over every plot element, creating novel plot types, or integrating with specific scientific workflows. Export to PNG/PDF/SVG for publication. For quick statistical plots use seaborn; for interactive plots use plotly; for publication-ready multi-panel figures with journal styling, use scientific-visualization.
PDF manipulation toolkit. Extract text/tables, create PDFs, merge/split, fill forms, for programmatic document processing and analysis.
Presentation toolkit (.pptx). Create/edit slides, layouts, content, speaker notes, comments, for programmatic presentation creation and modification.
Take anthropics/view-pdf from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.