Skip to content

maaslalani/invoice

Repository files navigation

Invoice

Invoice

Generate invoices from the command line.

Command Line Interface

invoice generate --from "Dream, Inc." --to "Imagine, Inc." \
    --item "Rubber Duck" --quantity 2 --rate 25 \
    --tax 0.13 --discount 0.15 \
    --note "For debugging purposes."

View the generated PDF at invoice.pdf, you can customize the output location with --output.

open invoice.pdf
Example invoice

Environment

Save repeated information with environment variables:

export INVOICE_LOGO=/path/to/image.png
export INVOICE_FROM="Dream, Inc."
export INVOICE_TO="Imagine, Inc."
export INVOICE_TAX=0.13
export INVOICE_RATE=25

Generate new invoice:

invoice generate \
    --item "Yellow Rubber Duck" --quantity 5 \
    --item "Special Edition Plaid Rubber Duck" --quantity 1 \
    --note "For debugging purposes." \
    --output duck-invoice.pdf

Configuration File

Or, save repeated information with JSON / YAML:

{
    "logo": "/path/to/image.png",
    "from": "Dream, Inc.",
    "to": "Imagine, Inc.",
    "tax": 0.13,
    "items": ["Yellow Rubber Duck", "Special Edition Plaid Rubber Duck"],
    "quantities": [5, 1],
    "rates": [25, 25],
}

Generate new invoice by importing the configuration file:

invoice generate --import path/to/data.json \
    --output duck-invoice.pdf

Custom Templates

If you would like a custom invoice template for your business or company, please reach out via:

Installation

Install with Go:

go install github.com/maaslalani/invoice@main

Or download a binary from the releases.

License

MIT

Feedback

I'd love to hear your feedback on improving invoice.

Feel free to reach out via:


zzz