v1.0.0

Invoice Generator

Tomás Migone Tomás Migone ← All skills

Generate professional PDF invoices from JSON data. Use when the user needs to create an invoice, billing document, or payment request with company/client details and line items.

Downloads
1.2k
Stars
1
Versions
1
Updated
2026-02-24

Install

npx clawhub@latest install invoice-generator

Documentation

Invoice Generator

Generate PDF invoices from structured JSON data.

Setup

1. Install Node.js dependencies:

cd invoice-generator && npm install

2. Set INVOICE_DIR environment variable (or in skills.entries.invoice-generator.env):

export INVOICE_DIR="/path/to/your/invoices"

This creates the directory structure:

$INVOICE_DIR/

├── configs/ # Optional: saved invoice configs

└── invoices/ # Generated PDF output

Usage

From stdin (on-the-fly)

cat invoice-data.json | {baseDir}/scripts/generate.sh

From a full file path

{baseDir}/scripts/generate.sh /path/to/invoice-data.json

From a saved config (looks in $INVOICE_DIR/configs/)

{baseDir}/scripts/generate.sh client-template

Loads: $INVOICE_DIR/configs/client-template.json

Output goes to: $INVOICE_DIR/invoices/invoice-{number}.pdf (auto-versions if exists)

Input Data Format

The JSON input must contain these fields:

{

"company": {

"name": "Your Company",

"address": "123 Main St",

"cityStateZip": "City, State, 12345",

"country": "Country"

},

"client": {

"name": "Client Name",

"address": "456 Client Ave",

"cityStateZip": "City, State, 67890",

"country": "Country",

"taxId": "TAX123"

},

"invoice": {

"number": "INV-2025.01",

"date": "Jan 15 2025",

"dueDate": "Jan 30 2025"

},

"items": [

{

"description": "Service description",

"rate": "1000.00",

"currency": "USD"

}

],

"totals": {

"currency": "USD",

"total": "1,000.00"

}

}

See [references/data-schema.md](references/data-schema.md) for complete field documentation.

Output

The script outputs the path to the generated PDF file on success:

$INVOICE_DIR/invoices/invoice-INV-2025.01.pdf

If that filename already exists, the script will write:

$INVOICE_DIR/invoices/invoice-INV-2025.01-2.pdf (then -3, etc.)

Error Handling

  • -Exits with code 1 if JSON is invalid or missing required fields
  • -Exits with code 2 if weasyprint fails to generate PDF
  • -Error messages are written to stderr

Launch an agent with Invoice Generator on Termo.