Invoice Generator
Create professional PDF invoices from the command line.
Quick Start
python3 scripts/invoice.py create \
--from "Your Business Name" \
--to "Client Name" \
--item "Consulting,8hrs,75" \
--item "Design,3hrs,100" \
--due 14
Commands
| Command | Description |
|---|
create | Generate a new invoice PDF |
estimate | Create a quote/estimate instead |
recurring | Set up a recurring invoice template |
list | List generated invoices |
remind | Generate a payment reminder |
Item Format
Items are specified as: "Description,Quantity,UnitPrice"
Examples:
"Web Development,40,85" — 40 hours at $85/hr
"Logo Design,1,1500" — flat rate $1500
"Hosting,12,29.99" — 12 months at $29.99/mo
Options
| Flag | Default | Description |
|---|
--from | (required) | Your business/personal name |
--from-email | | Your email |
--from-address | | Your address |
--to | (required) | Client name |
--to-email | | Client email |
--to-address | | Client address |
--item | (repeatable) | Line items |
--tax | 0 | Tax percentage |
--discount | 0 | Discount percentage or flat amount |
--due | 30 | Payment due in N days |
--currency | USD | Currency code |
--notes | | Additional notes |
--prefix | INV | Invoice number prefix |
--bank | | Bank details for payment |
--output | auto | Output filename |
Output
Generates a clean, professional PDF with:
- Invoice number (auto-incremented)
- Issue date and due date
- Itemized line items with subtotals
- Tax, discount, and total calculations
- Payment terms and bank details
- Professional formatting
Templates
Invoices use a clean minimal template by default. To customize:
- Edit
scripts/invoice_template.html
- Add your logo to
assets/logo.png