Skill Tracer
Skills › Knowledge Work Plugins › view-pdf

view-pdf

skill · 147 lines · Apache-2.0 · pdf-viewer/skills/view-pdf/SKILL.md

The facts

Its description

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).

The description the agent reads to decide when to use it.

From its settingsline 3

When it starts

The agent picks this skill when someone wants a PDF opened in a live viewer and worked on visually — annotating, highlighting, stamping, filling in form fields, or placing a signature or initials — rather than just having its text read or summarized.

Things a person might say (the model's guesses)

  • “Open this contract and highlight the key terms so I can review them”
  • “Help me fill out this PDF form”
  • “Sign this on page 3 and add my initials to each page”

A model's summary of when it is used.

A model's reading

Stops for a person

1 line stops to ask a person

Lines that stop and wait for a person before going on. Found by matching words, so treat them as pointers.

Found by matching wordsline 117

Licence

Apache-2.0, from pdf-viewer/LICENSE

The terms its author shares it under, which let it be shown here.

From the repositorylicence text

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: view-pdf
3description: 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).
4---
5
6# PDF Viewer — Interactive Document Workflows
7
8You have access to a local PDF server that renders documents in a live
9viewer and lets you annotate, fill forms, and place signatures with
10real-time visual feedback.

PDF Viewer — Interactive Document Workflows

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.

Raw lines 1 to 11
12## When to use this skill
14**Use the PDF viewer when the user wants interactivity:**
15- "Show me this contract" / "Open this paper"
16- "Highlight the key terms and let me review"
17- "Help me fill out this form"
18- "Sign this on page 3" / "Add my initials to each page"
19- "Stamp this CONFIDENTIAL" / "Mark this as approved"
20- "Walk me through this document and annotate the important parts"
22**Do NOT use the viewer for pure ingestion:**
23- "Summarize this PDF" → use the native Read tool directly
24- "What does page 5 say?" → use Read
25- "Extract the table from section 3" → use Read
27The viewer's value is showing the user the document and collaborating
28on markup — not streaming text back to you.

When to use this skill

Use the PDF viewer when the user wants interactivity:

  • "Show me this contract" / "Open this paper"
  • "Highlight the key terms and let me review"
  • "Help me fill out this form"
  • "Sign this on page 3" / "Add my initials to each page"
  • "Stamp this CONFIDENTIAL" / "Mark this as approved"
  • "Walk me through this document and annotate the important parts"

Do NOT use the viewer for pure ingestion:

  • "Summarize this PDF" → use the native Read tool directly
  • "What does page 5 say?" → use Read
  • "Extract the table from section 3" → use Read

The viewer's value is showing the user the document and collaborating on markup — not streaming text back to you.

Raw lines 12 to 29
32### `list_pdfs`
33List available local PDFs and allowed local directories. No arguments.

list_pdfs

List available local PDFs and allowed local directories. No arguments.

Raw lines 32 to 34
35### `display_pdf`
36Open a PDF in the interactive viewer. **Call once per document.**
37- `url` — local file path or HTTPS URL
38- `page` — initial page (optional, default 1)
39- `elicit_form_inputs` — if `true`, prompts the user to fill form
40 fields before displaying (use for interactive form-filling)
42Returns a `viewUUID` — pass this to every `interact` call. Calling
43`display_pdf` again creates a **separate** viewer; interact calls with
44the new UUID won't reach the one the user is looking at.
46Also returns `formFields` (name, type, page, bounding box) if the PDF
47has fillable fields — use these coordinates for signature placement.

display_pdf

Open a PDF in the interactive viewer. Call once per document.

  • url — local file path or HTTPS URL
  • page — 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.

Raw lines 35 to 48
49### `interact`
50All follow-up actions after `display_pdf`. Pass `viewUUID` plus one or
51more commands. **Batch multiple commands in one call** via the
52`commands` array — they run sequentially. End batches with
53`get_screenshot` to verify changes visually.
55**Annotation actions:**
56- `add_annotations` — add markup (see types below)
57- `update_annotations` — modify existing (id + type required)
58- `remove_annotations` — delete by id array
59- `highlight_text` — auto-find text by query and highlight it
60 (preferred over manual rects for text markup)
62**Navigation actions:**
63- `navigate` (page), `search` (query), `find` (query, silent),
64 `search_navigate` (matchIndex), `zoom` (scale 0.5–3.0)
66**Extraction actions:**
67- `get_text` — extract text from page ranges (max 20 pages). Use for
68 reading content to decide what to annotate, NOT for summarization.
69- `get_screenshot` — capture a page as an image (verify your annotations)
71**Form action:**
72- `fill_form` — fill named fields: `fields: [{name, value}, ...]`

interact

All 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 array
  • highlight_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}, ...]
Raw lines 49 to 73
Names a skill search :63
74## Annotation Types
76All annotations need `id` (unique string), `type`, `page` (1-indexed).
77Coordinates are PDF points (1/72 inch), origin **top-left**, Y increases
78downward. US Letter is 612×792pt.
80| Type | Key properties | Use for |
81|------|----------------|---------|
82| `highlight` | `rects`, `color?`, `content?` | Mark important text |
83| `underline` | `rects`, `color?` | Emphasize terms |
84| `strikethrough` | `rects`, `color?` | Mark deletions |
85| `note` | `x`, `y`, `content`, `color?` | Sticky-note comments |
86| `freetext` | `x`, `y`, `content`, `fontSize?` | Visible text on page |
87| `rectangle` | `x`, `y`, `width`, `height`, `color?`, `fillColor?` | Box regions |
88| `circle` | `x`, `y`, `width`, `height`, `color?`, `fillColor?` | Circle regions |
89| `line` | `x1`, `y1`, `x2`, `y2`, `color?` | Draw lines/arrows |
90| `stamp` | `x`, `y`, `label`, `color?`, `rotation?` | APPROVED, DRAFT, CONFIDENTIAL, etc. |
91| `image` | `imageUrl`, `x?`, `y?`, `width?`, `height?` | **Signatures, initials**, logos |
93**Image annotations** accept a local file path or HTTPS URL (no data:
94URIs). Dimensions auto-detected if omitted. Users can also drag & drop
95images directly onto the viewer.

Annotation Types

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.

TypeKey propertiesUse for
highlightrects, color?, content?Mark important text
underlinerects, color?Emphasize terms
strikethroughrects, color?Mark deletions
notex, y, content, color?Sticky-note comments
freetextx, y, content, fontSize?Visible text on page
rectanglex, y, width, height, color?, fillColor?Box regions
circlex, y, width, height, color?, fillColor?Circle regions
linex1, y1, x2, y2, color?Draw lines/arrows
stampx, y, label, color?, rotation?APPROVED, DRAFT, CONFIDENTIAL, etc.
imageimageUrl, 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.

Raw lines 74 to 96
97## Interactive Workflows

Interactive Workflows

Raw lines 97 to 98
99### Collaborative annotation (AI-driven)
1001. `display_pdf` to open the document
1012. `interact` → `get_text` on relevant page range to understand content
1023. Propose a batch of annotations to the user (describe what you'll mark)
1034. On approval, `interact` → `add_annotations` + `get_screenshot`
1045. Show the user, ask for edits, iterate
1056. When done, remind them they can download the annotated PDF from the
106 viewer toolbar

Collaborative annotation (AI-driven)

  1. display_pdf to open the document
  2. interact → get_text on relevant page range to understand content
  3. Propose a batch of annotations to the user (describe what you'll mark)
  4. On approval, interact → add_annotations + get_screenshot
  5. Show the user, ask for edits, iterate
  6. When done, remind them they can download the annotated PDF from the viewer toolbar
Raw lines 99 to 107
108### Form filling (visual, not programmatic)
109Unlike headless form tools, this gives the user **live visual
110feedback** and handles forms with cryptic/unnamed fields where the
111label is printed on the page rather than in field metadata.
1131. `display_pdf` — inspect returned `formFields` (name, type, page,
114 bounding box)
1152. If field names are cryptic (`Text1`, `Field_7`), `get_screenshot`
116 the pages and match bounding boxes to visual labels
1173. Ask the user for values using the **visual** labels, or infer from
118 context
1194. `interact` → `fill_form`, then `get_screenshot` to show the result
1205. User confirms or edits directly in the viewer
122For simple well-labeled forms, `display_pdf` with
123`elicit_form_inputs: true` prompts the user upfront instead.

Form filling (visual, not programmatic)

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.

  1. display_pdf — inspect returned formFields (name, type, page, bounding box)
  2. If field names are cryptic (Text1, Field_7), get_screenshot the pages and match bounding boxes to visual labels
  3. Ask the user for values using the visual labels, or infer from context
  4. interact → fill_form, then get_screenshot to show the result
  5. User confirms or edits directly in the viewer

For simple well-labeled forms, display_pdf with elicit_form_inputs: true prompts the user upfront instead.

Raw lines 108 to 124
Involves a person Ask the user :117
125### Signing (visual, not certified)
1261. Ask for the signature/initials image path
1272. `display_pdf`, check `formFields` for signature-type fields or ask
128 which page/position
1293. `interact` → `add_annotations` with `type: "image"` at the target
130 coordinates
1314. `get_screenshot` to confirm placement
133**Disclaimer:** This places a visual signature image. It is **not** a
134certified or cryptographic digital signature.

Signing (visual, not certified)

  1. Ask for the signature/initials image path
  2. display_pdf, check formFields for signature-type fields or ask which page/position
  3. interact → add_annotations with type: "image" at the target coordinates
  4. get_screenshot to confirm placement

Disclaimer: This places a visual signature image. It is not a certified or cryptographic digital signature.

Raw lines 125 to 135
136## Supported Sources
138- Local files (paths under client MCP roots)
139- arXiv (`/abs/` URLs auto-convert to PDF)
140- Any direct HTTPS PDF URL (bioRxiv, Zenodo, OSF, etc. — use the
141 direct PDF link, not the landing page)

Supported Sources

  • Local files (paths under client MCP roots)
  • arXiv (/abs/ URLs auto-convert to PDF)
  • Any direct HTTPS PDF URL (bioRxiv, Zenodo, OSF, etc. — use the direct PDF link, not the landing page)
Raw lines 136 to 142
Uses an outside tool MCP :138
143## Out of Scope
145- **Summarization / text extraction** — use native Read instead
146- **Certified digital signatures** — image stamping only
147- **PDF creation** — this works on existing PDFs only

Out of Scope

  • Summarization / text extraction — use native Read instead
  • Certified digital signatures — image stamping only
  • PDF creation — this works on existing PDFs only
Raw lines 143 to 147

From anthropics/knowledge-work-plugins at 2574e29, 2026-10-27. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.