๐Ÿ“Š

UK Accounting

Double-entry bookkeeping, VAT tracking, Profit & Loss, Balance Sheet โ€” all in a local SQLite ledger targeting HMRC Making Tax Digital.

๐Ÿ‡ฌ๐Ÿ‡ง UK Chart of Accounts ๐Ÿ“‹ MTD-ready ๐Ÿ”’ Local SQLite ๐Ÿค– AI-parseable JSON output

Double-Entry Ledger

Every transaction balanced to the penny โ€” debits always equal credits

Date โ”‚ Account โ”‚ Debit (ยฃ) โ”‚ Credit (ยฃ) โ”‚ VAT โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€ 2026-04-01 โ”‚ 4000 Sales Revenue โ”‚ โ”‚ 1,200.00 โ”‚ S20 2026-04-01 โ”‚ 2200 VAT Control โ”‚ โ”‚ 240.00 โ”‚ 2026-04-01 โ”‚ 1100 Trade Debtors โ”‚ 1,440.00 โ”‚ โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€ 2026-04-05 โ”‚ 6100 Office Expenses โ”‚ 85.00 โ”‚ โ”‚ S20 2026-04-05 โ”‚ 2200 VAT Control โ”‚ 17.00 โ”‚ โ”‚ 2026-04-05 โ”‚ 1200 Bank Current โ”‚ โ”‚ 102.00 โ”‚
๐Ÿ“š

UK Chart of Accounts

Standard UK account codes out of the box โ€” assets, liabilities, equity, income and expenses mapped to HMRC categories. Extend with custom accounts as needed.

๐Ÿ—„๏ธ

SQLite ledger

All data stored in ~/.chameleon/accounting/<company>/ledger.db. Runs completely offline. Multiple company support โ€” switch between entities with a command flag.

๐Ÿ“…

UK tax year

Year-end correctly set to 5 April (UK fiscal year 6 Apr โ€“ 5 Apr). P&L and VAT reports automatically span the correct period without manual date adjustment.

๐Ÿ”

Forensic anomaly scan

Run --forensic to detect unbalanced entries, duplicate references, VAT mismatches and other irregularities. Results printed as structured JSON for AI review.

๐Ÿค–

AI-readable output

All reports output structured JSON to stdout so the Chameleon AI can parse, summarise and advise on your financial position in natural language.

๐ŸŒ

WebSocket bridge

The accounting WebSocket bridge (acct_ws_bridge.py) exposes ledger queries to the mobile companion and external dashboards over your Tailscale network.

VAT Codes Supported

S20

Standard rate 20%

R5

Reduced rate 5%

Z

Zero-rated

E

Exempt

O

Out of scope

Reports

๐Ÿ“ˆ

Profit & Loss

Income vs expenses for the period. Sales, cost of goods, gross profit, operating expenses, net profit โ€” all broken down by account code. Run with --report pl.

โš–๏ธ

Balance Sheet

Assets, liabilities and equity at a point in time. Confirms double-entry integrity โ€” assets must equal liabilities plus equity. Run with --report bs.

๐Ÿงพ

VAT Return Summary

Box-by-box VAT figures matching the HMRC MTD VAT return format: Box 1 (output tax), Box 4 (input tax), Box 6 (net sales), Box 7 (net purchases). Run with --report vat.

Invoicing

HMRC Notice 700-compliant invoices โ€” printed, saved as PDF or pushed to your phone in one click

๐Ÿงพ

UK-compliant invoice fields

Every invoice includes all fields required by HMRC Notice 700: unique sequential invoice number, supplier name and address, VAT registration number, invoice date, date of supply (time of supply), client name and address, client VAT number where applicable, itemised line descriptions with quantities and unit prices, VAT rate per line, net and VAT subtotals, and total amount due. Nothing is missing, nothing is guessed.

๐Ÿข

Company Setup

Open File โ†’ Invoices โ†’ Company Setup to enter your registered company name, address, Companies House number, VAT number, email, phone and bank details. Settings are saved per client database in company.json alongside the ledger and auto-loaded whenever invoices are generated for that client.

๐Ÿ‘ฅ

Customer contacts database

The first time you invoice a client their name, address and VAT number are saved to a contacts table inside the ledger. On subsequent invoices, typing the client name autocompletes their details โ€” no re-entry needed. Contacts are editable at any time.

๐Ÿ–จ๏ธ

Print, PDF and send to phone

From the Invoice Manager (File โ†’ Invoicesโ€ฆ) select any invoice and choose: Print (opens the OS print dialog โ€” any printer or PDF driver), Save PDF (directly to disk via Qt's built-in PDF export), or Send to Phone (pushes the invoice HTML to the Companion app where it opens the Android print dialog โ€” print wirelessly to any AirPrint or nearby printer).

๐Ÿ“…

Date of supply

Separate "Date of supply" (time of supply) field โ€” distinct from invoice date. Required by HMRC for VAT purposes. Defaults to today but is independently editable per invoice.

๐Ÿ“ฑ

Mobile invoice printing

The Companion app can print any invoice wirelessly. Tap the print icon on any invoice row โ€” the app fetches the HTML from the IDE, converts it to PDF on-device via the printing package, and opens the Android system print dialog.

โœ…

HMRC Notice 700 compliance

All 12 required fields for a full UK VAT invoice are present and populated. Reduced-rate and zero-rated lines are clearly labelled. The invoice number sequence is strictly monotone-increasing with no gaps.

CLI Quick Reference

CommandDescription
python3 chameleon_accounting.py --report plProfit & Loss for current tax year
python3 chameleon_accounting.py --report bsBalance Sheet as of today
python3 chameleon_accounting.py --report vatVAT return summary (MTD boxes)
python3 chameleon_accounting.py --forensicAnomaly & integrity scan
python3 chameleon_accounting.py --helpFull command reference

Streamline your UK bookkeeping

Purpose-built for freelancers and small businesses operating under UK tax rules.

Get in touch โ† Back to overview