Professional PDF invoices from a YAML config file. No signup. No subscriptions. No SaaS.
Every freelancer and consultant needs to send invoices. Most tools are web-based, require accounts, and charge monthly fees. This is a Python script that runs on your machine, generates a real PDF, and costs $12 total. No account. No internet required at runtime. No dependency on a startup staying in business.
client_name: "Acme Design Studio"
client_email: "billing@acme.com"
invoice_number: "INV-2026-001"
date: "2026-04-26"
due_date: "2026-05-10"
items:
- description: "Logo redesign"
hours: 12
rate: 150
- description: "Brand guidelines document"
hours: 8
rate: 125
- description: "Website mockups"
hours: 20
rate: 150
tax_rate: 0
payment_terms: "Net 30"
python invoice.py --config my_invoice.yml --output invoice.pdf
The tool generates a professional PDF with your logo, client details, line items, subtotals, and payment terms. Email it. Done.
Python 3.7+. Optional: pip install reportlab for PDF output. Without reportlab, the tool generates a print-ready HTML invoice you can "Print to PDF" from your browser.
| Invoice Generator CLI | FreshBooks | Wave | PayPal Invoicing | |
|---|---|---|---|---|
| One-time cost | ✓ $12 | $15/mo | Free* | Free |
| No account required | ✓ | ✗ | ✗ | ✗ |
| Runs offline | ✓ | ✗ | ✗ | ✗ |
| Your data stays local | ✓ | ✗ | ✗ | ✗ |
| No internet needed | ✓ | ✗ | ✗ | ✗ |
| YAML config | ✓ | ✗ | ✗ | ✗ |
*Wave is free but requires account and data is on their servers
Yes. The PDFs are professional enough for real client work. Multiple freelancers have used this to invoice $1,000+ projects.
You get the source code. Modify it however you want. It's a Python script — you own it.
Yes. Python runs on Windows, Mac, and Linux. The script is the same on all platforms.
Yes. Just reference it in the YAML config: logo: path/to/your-logo.png