AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Invoice Generator

skill-thecraighewitt-skills-invoice-generator · by TheCraigHewitt

Generate a professional PDF invoice from a one-sentence description, with line items, totals, tax, and payment terms. Use this whenever the user says 'create an invoice,' 'invoice [name] for,' 'generate a bill,' 'bill [client] for [amount],' 'invoice template,' or describes work that needs to be billed. The first run sets up the user's invoice template (their business info, payment details, defau…

No reviews yet
0 installs
39 views
0.0% view→install

Install

$ agentstack add skill-thecraighewitt-skills-invoice-generator

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-thecraighewitt-skills-invoice-generator)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Invoice Generator? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Invoice Generator

You produce a polished, ready-to-send PDF invoice from a short prompt. The first run sets up the user's defaults so future invoices are one-sentence requests.

First-run setup

Check if invoice-config.md exists in the working folder. If not, run setup:

Ask once for:

  1. Your business — name, logo path (optional), address, email, phone, website
  2. Your tax / business ID — EIN, ABN, VAT number, depending on country
  3. Payment details — bank transfer details, Stripe payment link, PayPal email, check mailing address, or all of the above
  4. Default payment terms — Net 7? Net 15? Net 30? Due on receipt?
  5. Default tax handling — none / sales tax / VAT / GST, and rate
  6. Late fee policy — flat fee, percentage, or none
  7. Invoice number format — sequential (INV-001, INV-002), date-based (2026-001), or custom
  8. Currency — USD, EUR, GBP, AUD, etc.
  9. Brand color (optional) — one accent color for the invoice design

Save all of this to invoice-config.md. Don't ask again.

Also create invoice-log.md to track invoice numbers issued so the next one auto-increments.

Generating an invoice

The user will say something like:

> "Invoice Acme Corp $5,000 for the November consulting retainer"

Or longer:

> "Invoice ABC Inc — 40 hours of design work at $150/hr, plus a $500 rush fee, due in 7 days"

Parse the request for:

  • Recipient — name, company, billing address, email
  • Line items — description, quantity, rate, total
  • Discounts or rush fees
  • Due date (use default terms if not specified)
  • Payment method preference (if specified)
  • Special notes (e.g., PO number, reference number, project name)

If recipient billing details aren't on file, ask once and save to clients/[client-slug].md for future invoices.

The invoice format

Generate a clean, single-page PDF saved as invoice-[number]-[client-slug].pdf. Layout:

Header

  • Business logo (top left, if provided)
  • "INVOICE" in large type (top right)
  • Invoice number, issue date, due date (top right, below "INVOICE")

Parties

  • "From:" — your business info, left column
  • "Bill to:" — client info, right column

Line items table

| Description | Quantity | Rate | Amount | |-------------|----------|------|--------|

  • Right-aligned numeric columns
  • Subtotal below the table
  • Tax line if applicable
  • Discount line if applicable
  • Total in larger, bolder type

Payment section

  • Payment methods accepted (with details — bank info, Stripe link, etc.)
  • Due date in plain English ("Payment due by [date]")
  • Late fee policy if applicable

Footer

  • "Thank you" line (one sentence, warm but not effusive)
  • Notes / PO number / project reference
  • Small contact info

Visual style

  • Clean, professional, minimal
  • One accent color (from config) used for headers and the total line
  • White or near-white background
  • One sans-serif font (Inter, Helvetica, or system stack)
  • Plenty of whitespace — don't cram

Avoid: gradients, drop shadows, clipart, watermarks, "PAID" / "OVERDUE" stamps unless the user asks.

After generating

  1. Save the PDF to the working folder
  2. Update invoice-log.md with the new invoice (number, date, client, amount, status: sent / paid / overdue)
  3. Tell the user: file path, summary of the invoice, and offer to:
  • Draft an email to send the invoice
  • Set a reminder to follow up if unpaid
  • Generate a recurring invoice schedule if this is a retainer

Edge cases

  • Multiple currencies — note the currency clearly. If converting, show both amounts.
  • International tax — VAT handling differs by country and customer status (B2B reverse charge in EU, etc.). Ask if unsure rather than guess.
  • Discounts — apply before or after tax depending on jurisdiction. Default: discount before tax unless told otherwise.
  • Time tracking integration — if the user has time-tracking data in the folder (Toggl export, Harvest CSV), offer to use it directly rather than re-typing hours.
  • Retainer invoices — if this is a recurring retainer, note "Retainer for [month/period]" in the description and suggest a scheduled task to auto-generate next month's.

Rules

  1. The first run takes 2 minutes. Every subsequent run takes 10 seconds. Setup is intentional — invest once, save forever.
  2. Don't surprise the user with custom design choices. Invoices should look like invoices, not graphic design experiments.
  3. Auto-increment the invoice number. Never reuse a number.
  4. Round to whole units. Cents are fine; fractional hours are not. If the user says "37.5 hours," use it — but don't introduce sub-unit precision they didn't.
  5. Save client details after first invoice. Every repeat client should be a one-word reference next time ("invoice Acme for $4,000 retainer").

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.