Clawed Invoice Generator

Other

Generate professional PDF invoices with a clean layout — no Playwright, no browser, no complex dependencies. Built for reliability on constrained hosting environments ( Railway, minimal containers, offline setups). Just jsPDF + plain Node.js. Supports EUR/GBP/USD, multi-item tables, custom brand colours, and payment details footer.

Install

openclaw skills install clawed-invoice

Clawed Invoice Generator

Generate clean, professional PDF invoices with a consistent layout and customisable brand colours.

Layout

┌─────────────────────────────────────────────────────────┐
│  HEADER BAR (dark)  │  Invoice No / Date / Customer No │
│  COMPANY NAME (gold) │  Payment Due Date                  │
├─────────────────────────────────────────────────────────┤
│  BILL TO                                                       │
│  Customer Name                                           │
│  Customer Address                                         │
├─────────────────────────────────────────────────────────┤
│  Code │ Description │ Qty │ Net │ VAT │ Gross            │
│  ─────┼──────────────┼─────┼─────┼─────┼────────          │
│  SVC  │ Service desc │  1  │£xxx │ xx% │ £xxx             │
├─────────────────────────────────────────────────────────┤
│  Subtotal (NET):                              £x,xxx.xx  │
│  VAT 20%:                                     £xxx.xx    │
│  ██████████████ Total ██████████████████████  £x,xxx.xx  │
├─────────────────────────────────────────────────────────┤
│  PAYMENT DETAILS                                         │
│  Account holder: [Company Name]                           │
│  Swift/BIC:    [XXXXXXXX]                                │
│  IBAN:         [XXXX XXXX XXXX XXXX]                    │
├─────────────────────────────────────────────────────────┤
│  Notes / payment terms / legal text                       │
└─────────────────────────────────────────────────────────┘

Colour Palette (customisable via config)

ElementHexUsage
Header / boxes#2F3640Dark charcoal — use in config
Accent / total#FFC11EGold — use in config
Row background#F8F8F8Light grey alternating rows
Body text#000000Primary content
Labels / muted#505050Secondary text

Usage

1. Prepare your invoice data as JSON:

{
  "invoiceNumber": "INV-001",
  "invoiceDate":   "01/06/2026",
  "customerNumber": "CUST-001",
  "dueDate":       "07/06/2026",
  "customerName":  "Acme Corp",
  "customerAddress": "123 High Street\nLondon, EC1 1AB",
  "items": [
    {
      "code": "SVC",
      "description": "Consulting services",
      "qty": "8",
      "net": "2,400.00",
      "vatRate": "20%",
      "vatAmt": "480.00",
      "gross": "2,880.00"
    }
  ],
  "currency": "GBP",
  "entity": "default"
}

2. Run the generator:

node /data/workspace/skills/clawed-invoice/scripts/generate.js \
  --config /data/workspace/skills/clawed-invoice/references/config.json \
  --datafile /path/to/your-invoice.json

3. Outputinvoice-INV-001.pdf in /tmp/invoices/ (or your outputDir)

Configuration

Edit references/config.json to set your company details once — the generator pulls them automatically per invoice:

{
  "default": {
    "entity": "Your Company Name Ltd",
    "swift": "XXXXXXXX",
    "iban": "XXXX XXXX XXXX XXXX XXXX",
    "companyNumber": "XXXXXXX",
    "currency": "GBP",
    "vatRate": "20%"
  }
}

For multiple entities (e.g. UK + EU subsidiaries), add additional keys and select via entity: "eu" in your invoice data.

Dependencies

Requires jspdf installed at /data/local/node_modules/jspdf