A CSV of sales lines becomes printable GST tax invoices with the correct tax split, round off and amount in words, plus an invoice register, an HSN summary and a list of anything held back; a ready Excel/Sheets template is included.
Who it is for: Small trader, freelancer or service business in India that raises a handful to a few hundred GST invoices a month without billing software.
Format: Claude skill pack · Version: 1.0.1 · Tested on: Python 3.13.5 (standard library only)
What it does
Rows with the same invoice number become one invoice. Your state comes from your GSTIN, the buyer's from the place of supply (or their GSTIN, or yours for a cash sale). Same state: CGST + SGST (UTGST in Chandigarh, Ladakh, Lakshadweep, Andaman and Nicobar, Dadra and Nagar Haveli and Daman and Diu); other state: IGST. Each line's tax is worked out, totals are rounded to the rupee with a round-off line, and the amount is written in Indian words (lakh, crore). Before an invoice is made it checks both GSTINs' check digits, that the GST rate is a real slab, HSN length, invoice number length and characters, and repeats within the financial year. Invoices with errors are held back and listed; warnings (for example 12% after 22 Sep 2025) are listed but the invoice is made.
What you need
- Claude.ai with code execution switched on (or Claude Code, or just Python 3.10+)
- Your GSTIN and invoice lines in a spreadsheet saved as CSV
- Or just Excel / Google Sheets for the template
5-minute setup
- Claude.ai: open Settings → Capabilities → Skills, click Upload skill and pick
claude-ai-upload/gst-invoice-sheet.zip. - Claude Code: copy the folder
skills/gst-invoice-sheetinto~/.claude/skills/. - Start a new chat. Attach your file and say: "Use gst-invoice-sheet. Make GST invoices from these lines; my seller details are in seller.csv".
- Claude runs the script and gives you the files listed under Outputs. Check them before you act on them.
Try it with the sample
Run the sample (fictional seller and five October 2026 invoices):
python3 skills/gst-invoice-sheet/scripts/core.py --seller samples/seller.csv --lines samples/invoice-lines-oct-2026.csv --out out
You should see 4 of 5 invoices made (2 intra-state, 2 inter-state, 1 B2C), 1 held back for a buyer GSTIN that fails the check digit, and a total of ₹1,05,966.00. Open out/invoices/ST_26-27_001.html and print it. In Claude, attach the files and use the prompt above.
Settings you can change
| Option | Default | What it is |
|---|---|---|
--seller |
(required) |
CSV of field,value rows: name, gstin, address, phone, bank, account no, ifsc, upi, terms |
--lines |
(required) |
CSV of invoice lines (one row per item; rows with the same invoice no make one invoice) |
--no-slab-warning |
(off) |
Do not warn about 12%/28% on invoices dated from 22 Sep 2025 |
--out |
out |
Output folder |
What goes in and what comes out
Inputs: Seller details CSV (name, GSTIN, address, optional bank/UPI/terms); Invoice lines CSV (invoice no, date, buyer, buyer GSTIN, place of supply, description, HSN, qty, unit, rate, discount, GST rate, cess)
Outputs: invoices/
AI disclosure and limits
This product does not call an AI model at run time. It was built by Oarsman AI's AI agents and checked by the automated tests shipped with it.
Limits: - Does not generate e-invoices (IRN/QR) or e-way bills; businesses that must e-invoice need the IRP. - Prints from a browser to PDF; it does not email invoices. - Checks that a GST rate is a valid slab, not that it is the right rate for your HSN. - Up to 500 invoices per run. - Invoice help, not tax advice.
Not tested by us: - printing from a browser (the invoice HTML is generated and checked in tests, not printed) - the template in Apple Numbers - composition-scheme bills of supply
Files
- oarsman-gst-invoice-sheet-v1.0.1.zip
- CHANGELOG.md
- QA-REPORT.json
- README.md
- SPEC.md
- SUPPORT.md
- TROUBLESHOOTING.md
- VERSION
- VIDEO-SCRIPT.md
- claude-ai-upload
- diagram.mmd
- diagram.png
- preview.png
- samples
- skills
- tests
Help
Self-serve: see TROUBLESHOOTING.md (fixes and FAQ). There is no call, chat or email support. Fixes ship as new versions at your download link. Refund: 14 days, works as described, through the checkout platform.