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

Why Your Claude Code UI Output Drifts and How a Structured Spec Fixes It
A developer explains that inconsistent UI output from Claude Code isn't a prompt problem — it's a format problem. Providing exact hex codes, font weights, spacing, screen states, and transitions eliminates drift. They also open-sourced an MCP server that converts screen recordings into structured specs.

wearehere browser extension scans sites for tracking and privacy risks
wearehere is a browser extension that scans websites across ten categories including cookies, trackers, device fingerprinting, and dark patterns, then scores them based on privacy risks. It's under 200KB, runs locally in the browser, and also comes as an npm package for integration with AI agents via barebrowse MCP server.

Open-sourced library of 59 Claude skills covers full website lifecycle
A developer released 59 reusable Claude skills covering brand discovery, design, content, SEO, development, ops, and growth — stack-agnostic, with uniform structure and CI lint validation.

OpenJet v0.4: Zero-Config Local Coding Agent with llama.cpp Backend
OpenJet v0.4 is an open-source terminal coding agent for local LLMs that auto-detects hardware, configures llama.cpp, and provides a Claude Code-style workflow with no API keys.