Displays PDFs in interactive viewer for annotation, text highlighting, form filling, signing/initials, stamping, navigation, and screenshot capture. Ideal for visual document collaboration.
From pdf-viewernpx claudepluginhub anthropics/knowledge-work-plugins --plugin pdf-viewerThis skill uses the workspace's default tool permissions.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Designs scalable batch/streaming data pipelines, warehouses, lakehouses using Spark, dbt, Airflow, Kafka/Flink, and cloud platforms like Snowflake, BigQuery, Databricks.
Builds production Apache Airflow DAGs using best practices for operators, sensors, testing, and deployment. For data pipelines, workflow orchestration, and batch jobs.
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)