Place a signature or initials image on a PDF
Copy the command definition below into:
~/.claude/commands/sign.md---
description: Place a signature or initials image on a PDF
argument-hint: "[path-or-url] [signature-image-path]"
---
> If you need to check which tools are connected, see [CONNECTORS.md](../CONNECTORS.md).
# Sign PDF
Add a visual signature or initials to a document using an image
annotation.
> **Disclaimer:** This places your signature **image** on the page. It
> is **not** a certified or cryptographic digital signature. For
> legally binding e-signatures, use a dedicated signing service.
## Workflow
1. **Get the signature image** — ask the user for a local file path
(PNG/JPG) to their signature or initials. If they don't have one,
suggest they create one and save it to a known path.
2. **Open the PDF** — `display_pdf` (or reuse existing `viewUUID`).
Check the returned `formFields` for signature-type fields — they
include page and bounding-box coordinates.
3. **Locate the target** — if there's a signature field, use its
coordinates. Otherwise ask: "Which page, and where on the page?
(e.g., bottom-right of page 3)"
4. **Place it** — `interact` → `add_annotations`:
```json
{"action": "add_annotations", "annotations": [
{"id": "sig1", "type": "image", "page": 3,
"imageUrl": "/path/to/signature.png",
"x": 400, "y": 700, "width": 150}
]}
```
Width/height auto-detected from the image if omitted.
5. **Verify** — follow with `get_screenshot` of that page. Show the
user. Adjust position if needed via `update_annotations`.
6. **Initials on every page** — batch one `image` annotation per page
in a single `add_annotations` call.
## Tips
- `imageUrl` accepts local file paths or HTTPS URLs (no data: URIs)
- Users can also drag & drop the signature image directly onto the
viewer
- Coordinate origin is top-left; a typical bottom-right signature on
US Letter is around `x: 400, y: 700`
- Pair with `/pdf-viewer:fill-form` for complete form workflows