tally  by davidfowl

Local transaction classification engine for AI agents

Created 2 weeks ago

New!

920 stars

Top 39.6% on SourcePulse

GitHubView on GitHub
Project Summary

Tally provides a local, rule-based engine for automating bank transaction classification, designed to integrate with various Large Language Models (LLMs) to eliminate manual data entry and categorization. It empowers users, from individuals managing personal budgets to power users needing automated financial data processing, by offering a flexible and extensible system for understanding spending patterns. The primary benefit is significant time savings and improved accuracy in financial tracking.

How It Works

Tally operates as a local command-line tool that parses transaction data from CSV files. It employs a configurable rule engine, defined in settings.yaml, to map raw transaction descriptions to categories and subcategories using Python regular expressions. For advanced classification and reasoning, it can be paired with LLMs like Claude Code, Codex, Copilot, Cursor, or local models, enabling intelligent interpretation of transaction details and merchant names. This approach allows for highly customized and adaptable transaction analysis without relying on cloud-based services for core processing.

Quick Start & Requirements

  • Installation:
    • Linux/macOS: curl -fsSL https://tallyai.money/install.sh | bash
    • Windows PowerShell: irm https://tallyai.money/install.ps1 | iex
    • Via uv: uv tool install git+https://github.com/davidfowl/tally
  • Initialization: Run tally init ./my-budget to create a new budget directory, then cd my-budget.
  • Next Steps: Execute tally workflow for context-aware instructions based on your setup state.
  • Prerequisites: Basic shell access. LLM integration is optional but recommended for full capabilities.
  • Documentation: Official website: https://tallyai.money/

Highlighted Details

  • Flexible Data Parsing: Supports custom format strings for CSV columns, including date formatting, multi-column descriptions, and handling different decimal separators.
  • Advanced Categorization: Utilizes Python regex for merchant pattern matching and allows custom tags (e.g., business, reimbursable) for filtering.
  • Inline Modifiers: Transactions can be filtered or modified based on amount ranges ([amount>200]) or date conditions ([month=12]).
  • AI Agent Integration: Commands like tally discover --format json and tally run --format json -v provide structured data and reasoning suitable for LLM consumption.
  • Multiple Output Formats: Generates reports in JSON (with reasoning), Markdown, or plain text summaries.

Maintenance & Community

No specific details regarding maintainers, community channels (like Discord/Slack), or roadmap were provided in the README. Development builds are automatically created on every push to the main branch.

Licensing & Compatibility

The project is released under the MIT License. This permissive license allows for broad use, modification, and distribution, including within commercial and closed-source applications, with minimal restrictions beyond attribution.

Limitations & Caveats

As a local rule engine, Tally's effectiveness heavily relies on user-defined configurations and the quality of input data. While it supports LLM integration, the core classification logic is rule-based, requiring manual setup for new merchants or complex transaction types. The project's maturity and community support are not detailed in the provided information.

Health Check
Last Commit

16 hours ago

Responsiveness

Inactive

Pull Requests (30d)
35
Issues (30d)
42
Star History
950 stars in the last 16 days

Explore Similar Projects

Starred by Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems"), Nicolas Camara Nicolas Camara(Cofounder of Firecrawl), and
1 more.

fire-enrich by firecrawl

0.9%
1k
AI-powered data enrichment from email lists
Created 7 months ago
Updated 3 months ago
Feedback? Help us improve.