A local rule engine for transaction classification. Pair it with an LLM to eliminate the manual work.

Works with Claude Code, Codex, Copilot, Cursor, or a local model
Tally has no AI built in. It's a CLI you can pair with an agent to categorize your transactions.

The Problem

WHOLEFDS MKT 10847 SEATTLE WA AMZN MKTP US*2K7X9 SQ *JOES COFFEE SEATTLE

Bank transactions are cryptic. Bank categories say "Shopping" when you want "Kids > Clothing" vs "Home > Furniture". They lump restaurants together but you need "Coffee" separate from "Fast Food".

The Solution

LLMs have read the internet. They know what "WHOLEFDS MKT" is. They understand "SQ *" means Square. Tell them your rules in plain English:

"ZELLE to Sarah is babysitting → Childcare" "COSTCO with GAS is fuel, otherwise groceries"

The AI writes pattern-matching rules to a CSV. No database. No CMS. Just a text file you control.

Install

Linux / macOS
curl -fsSL https://tallyai.money/install.sh | bash
Windows PowerShell
irm https://tallyai.money/install.ps1 | iex
Python (uv)
uv tool install git+https://github.com/davidfowl/tally

Workflow

1
tally init
Creates config folder with AGENTS.md instructions
🤖
AI Agent Loop
Your AI reads AGENTS.md then:
tally discover --format json → finds unknown merchants
AI identifies merchants, writes rules to CSV
Repeat until unknowns are minimal
2
tally run
Generates HTML spending report with all transactions categorized
Tally spending report showing monthly budget, recurring expenses, and transaction categories
Open Source

Tally is MIT licensed. Contributions welcome!