Claude Code plugin
The ImaginePDF plugin for Claude Code lets you author designs and generate PDFs without leaving your terminal — invoices, receipts, certificates, reports, and letters, described in plain language. Under the hood it talks to the same REST API using your workspace API key.
A common flow: author a base template from the terminal, open it in the visual editor to refine, then generate copies via the API or a dataset.
Prerequisites
- Claude Code .
- An ImaginePDF workspace and a workspace API key (dashboard → Settings → API Keys). The plan must include API access. See Authentication.
Installation
From the GitHub marketplace:
/plugin marketplace add imaginepdf/claude-imaginepdf
/plugin install imaginepdf@imaginepdfFor local development against a checkout:
claude --plugin-dir /path/to/claude-imaginepdfSetup
Export your workspace API key (pc_live_…, from the dashboard →
Settings → API Keys) before you launch Claude — a session that’s already
running won’t pick up a later export:
export IMAGINEPDF_API_KEY="pc_live_..."
claudeAdd it to your shell profile to keep it around. For local dev against a
non-production API, also export IMAGINEPDF_API_URL (defaults to
https://api.imaginepdf.com):
export IMAGINEPDF_API_URL="http://localhost:3100"Usage
Just ask Claude in plain English:
Create a detailed invoice for Acme Corp, invoice #1042, dated today, for 3
items: Widget A ($50 x 2), Widget B ($75 x 1), Widget C ($30 x 5). Add a QR
code linking to the payment page, and make the customer name a template variable.Claude authors the layout, checks its own preview, and returns the finished PDF — saved to your workspace.
Skills
Claude picks the right skill up from your request — you don’t invoke them by hand:
| Skill | What it does |
|---|---|
imaginepdf:design | Author or edit a layout — elements, styling, template variables. |
imaginepdf:generate | Render the design to a PDF, single or batch from a dataset. |
How it fits together
Claude Code → ImaginePDF plugin → ImaginePDF API /api/v1 (X-API-Key)
(validates, applies tree ops, renders)The plugin is a thin client over the public API: it issues the same
POST /api/v1/designs, PATCH /api/v1/designs/:id/tree, and
POST /api/v1/designs/:id/generate calls documented in the
API Reference, with tree-patch bodies carrying
actions — singular, validated authoring
operations. Anything the plugin does, you can do directly over HTTP.
Designs created from the plugin live in your workspace just like any other — open them in the visual editor to refine, or generate them in batch from a dataset.