Invoice Agent 💰
Professional invoice management entirely from the command line. All data stored locally at ~/.invoice-agent/data.json.
Setup (one-time)
# Configure your business defaults
python3 SKILL_DIR/scripts/invoice.py config \
--business-name "Your Business" \
--business-email "you@business.com" \
--currency USD \
--tax-rate 0
Quick Workflows
Create an Invoice (natural language → invoice)
User: "Create an invoice for Acme Corp for website design $2500 and SEO setup $500, due in 30 days"
python3 SKILL_DIR/scripts/invoice.py create \
--client "Acme Corp" \
--items "Website Design|1|2500" "SEO Setup|1|500" \
--due-days 30
Generate Professional HTML Invoice
# Export first
python3 SKILL_DIR/scripts/invoice.py export --id INV-XXX
# Generate HTML
python3 SKILL_DIR/scripts/generate_invoice.py ~/.invoice-agent/invoices/INV-XXX.json invoice.html
Check Overdue Payments & Send Reminders
python3 SKILL_DIR/scripts/invoice.py overdue
python3 SKILL_DIR/scripts/reminders.py
Financial Dashboard
python3 SKILL_DIR/scripts/invoice.py summary --period month
Key Commands
| Command | Purpose |
|---|---|
create --client NAME --items "desc|qty|price" |
New invoice |
list [--status STATUS] |
List/filter invoices |
show --id INV-XXX |
Full invoice details |
update --id INV-XXX --status paid |
Mark as paid/sent |
summary --period month |
Revenue report |
overdue |
List overdue invoices |
reminders.py |
Generate reminder emails |
generate_invoice.py |
HTML invoice from JSON |
config [--business-name NAME ...] |
Set defaults |
Item Format
Items use pipe-separated format: "Description|Quantity|UnitPrice"
"Website Design|1|2500"→ 1 × $2,500 = $2,500"Hosting|3|29.99"→ 3 × $29.99 = $89.97"Consulting|2|150"→ 2 × $150 = $300
Reminder Escalation
Auto-escalation based on days overdue:
- 1-7 days: Gentle/friendly tone
- 8-21 days: Firm/professional tone
- 22+ days: Final notice with legal warning
References
- Full command reference: see
references/guide.md - HTML template: edit
assets/invoice-template.htmlfor custom branding - Customize brand color: change
BRAND_COLOR_DEFAULTinscripts/generate_invoice.py