actual-ai  by sakowicz

AI for transaction categorization in Actual Budget

created 1 year ago
291 stars

Top 91.6% on sourcepulse

GitHubView on GitHub
Project Summary

This project provides an AI-powered tool to automatically categorize financial transactions within Actual Budget. It targets Actual Budget users seeking to streamline their bookkeeping by leveraging Large Language Models (LLMs) for intelligent transaction classification, category suggestion, and merchant information enrichment.

How It Works

The system integrates with Actual Budget to fetch uncategorized transactions. It then sends these transactions, along with existing category data, to a configured LLM (OpenAI, Anthropic, Google Generative AI, Ollama, Groq) for classification. An optional web search tool (ValueSerp or a free DuckDuckGo alternative) can enrich prompts with merchant details for improved accuracy. The LLM can also suggest and create new categories for transactions that don't fit existing structures.

Quick Start & Requirements

  • Install/Run: Deploy via docker-compose as shown in the README.
  • Prerequisites: Actual Budget instance, API keys for chosen LLM provider and ValueSerp (if used), ACTUAL_PASSWORD, ACTUAL_BUDGET_ID.
  • Configuration: Set environment variables for API keys, LLM provider, budget ID, and desired features (e.g., classifyOnStartup, freeWebSearch, suggestNewCategories).
  • Docs: https://github.com/sakowicz/actual-ai

Highlighted Details

  • Supports multiple LLM providers including self-hosted Ollama.
  • Optional web search for merchant disambiguation via ValueSerp or a free alternative.
  • Feature to automatically suggest and create new categories.
  • Configurable cron schedule for automated classification.
  • Dry run mode for testing changes before applying them.

Maintenance & Community

The project is maintained by sakowicz. Community channels are not explicitly mentioned in the README.

Licensing & Compatibility

The project appears to be under the MIT License, allowing for commercial use and integration with closed-source applications.

Limitations & Caveats

The NODE_TLS_REJECT_UNAUTHORIZED: 0 setting is mentioned as potentially required for connecting to Actual Server, which may indicate TLS/SSL configuration issues or security implications. The dryRun feature is enabled by default, requiring explicit disabling for actual transaction modifications.

Health Check
Last commit

1 week ago

Responsiveness

1 day

Pull Requests (30d)
35
Issues (30d)
4
Star History
66 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.