Help us improve
Share bugs, ideas, or general feedback.
From pdf-viewer
Displays PDFs in interactive viewer for annotation, text highlighting, form filling, signing/initials, stamping, navigation, and screenshot capture. Ideal for visual document collaboration.
npx claudepluginhub anthropics/knowledge-work-plugins --plugin pdf-viewerHow this skill is triggered — by the user, by Claude, or both
Slash command
/pdf-viewer:view-pdfThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You have access to a local PDF server that renders documents in a live
Displays, navigates, searches, annotates, and manipulates PDF documents using PDFKit (PDFView, PDFDocument, PDFPage, PDFAnnotation, PDFSelection). Targets Swift 6.3 / iOS 26+.
Generates print-ready PDFs from scratch, fills form fields, or reformats documents using token-based design systems for reports, proposals, resumes.
Create, edit, analyze office documents (PDF, DOCX, PPTX, XLSX): extract text/tables, merge/split, fill forms, data analysis using pdfplumber, pypdf, pandas, openpyxl.
Share bugs, ideas, or general feedback.
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 form
fields 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 for
reading 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_screenshotUnlike 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_screenshot
the pages and match bounding boxes to visual labelsinteract → 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 ask
which page/positioninteract → add_annotations with type: "image" at the target
coordinatesget_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)