Open-source CLI uses Claude Haiku to automate Xero expense auditing

A developer has built an open-source Python CLI tool that uses Claude Haiku to automate expense auditing for Xero accounting software. The tool is designed to reduce time spent on manual expense checking tasks like verifying descriptions, tax codes, currency conversions, and receipt matching.
Design approach and cost
The tool follows a "deterministic code first, then AI to fill in the gaps" design principle. Users configure rules for common issues like missing fields, invalid tax rates, duplicates, and zero amounts. Claude Haiku is only called when structured data is lacking, such as with unstructured receipts. This approach keeps LLM usage costs to a few cents per audit run.
Specific Haiku use cases
- Triaging flagged bills: After rules flag issues, Haiku reviews bills and returns structured JSON suggestions with confidence scores. Suggestions below 0.7 confidence are filtered out.
- Receipt vision: Haiku reads receipt/invoice images to extract supplier names and line item descriptions. Supplier names are matched against existing Xero contacts.
- Foreign currency detection: Haiku identifies currency from receipts, then deterministic code fetches historical ECB rates, converts amounts, and attaches rate CSV files as audit evidence.
- Natural-language bill editing: Instead of clicking through Xero's interface, users can type English instructions like "set description to monthly subscription fee," and Haiku converts these to JSON patches.
Implementation details
The tool runs on Claude Haiku 4.5 and includes a human-in-the-loop approach where nothing auto-applies unless the user explicitly uses the --auto-correct flag. The developer notes this pattern of "rules first, LLM as fallback" has worked well for structured-but-messy business automation tasks.
The project is available on GitHub at https://github.com/logicalicy/xero-expense-audit, and the developer has written a detailed explanation of their approach at https://blog.mariohayashi.com/p/using-ai-to-make-xero-expense-auditing.
📖 Read the full source: r/ClaudeAI
👀 See Also

Crag: Open-source tool generates unified AI agent rules from project configs
Crag is an open-source compiler that analyzes project configurations and generates a single governance.md file, then compiles it into multiple AI agent rule files to prevent configuration drift across tools like Claude Code, Cursor, and Copilot.

Developer Builds Scheme Compiler to WASM Using AI in 4 Days
A developer created Puppy Scheme, a Scheme compiler that targets WebAssembly, in about 4 days using AI assistance. The compiler supports 73% of R5RS and R7RS, uses WASM GC, and achieved compilation time improvements from 3½ minutes to 11 seconds overnight.

Hollow Agent OS: Local AI workers call Claude as senior architect when stuck
Hollow Agent OS uses local Qwen models that run 24/7, but when they hit logic errors or need major changes, they trigger a Claude call via MCP. Claude reorganizes file structures, reviews code, and acts as a manager for autonomous local workers.

Testreel: Programmatic Demo Video Generation with Claude Code
Testreel is an npm package that generates polished product demo videos from JSON, YAML, or Playwright interaction descriptions. It creates webm/mp4/gif videos with cursor overlays, click ripples, and gradient backgrounds.