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.
Not using Claude Code?
The hosted MCP server exposes the same operations as tools to any MCP client — Claude, Cursor, and anything else that speaks the protocol. The plugin is the better fit inside Claude Code, because its skills carry the design workflow with them; the MCP server is the better fit everywhere else.
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.