← all repositories
sakowicz/actual-ai

Outsourced bookkeeping, self-hosted

This sidecar feeds uncategorized Actual Budget transactions to OpenAI, Anthropic, Ollama, or another compatible LLM, then writes back the guesses while flagging anything it couldn’t figure out.

501 stars TypeScript Domain Apps
actual-ai
Collecting fresh signals — velocity needs a few days of history.
collecting data…
star history

What it does actual-ai sits alongside Actual Budget and sends uncategorized transactions to an LLM—OpenAI, Anthropic, Google, Ollama, OpenRouter, or Groq—based on description, amount, and notes. It runs on a cron schedule, syncs accounts first, and marks every processed transaction in its notes so you can spot machine-made decisions at a glance. If a transaction stumps the model, it is tagged as “not guessed” and skipped in future runs.

The interesting bit The project treats merchant ambiguity as a search problem: it can hit the web via ValueSerp or a self-hosted DuckDuckGo alternative to look up unfamiliar vendors before asking the LLM to decide. It also defaults to dry-run mode, which means it will happily tell you what it would do without touching your budget until you explicitly disable the training wheels.

Key highlights

  • Supports multiple LLM providers (OpenAI, Anthropic, Google, Ollama, OpenRouter, Groq) via environment-driven configuration.
  • Optional web-search tooling to research unfamiliar merchants before classification.
  • Can suggest and auto-create new budget categories when existing ones don’t fit.
  • Dry-run mode is on by default: proposed changes are logged, not applied.
  • Built-in rate-limiting with per-provider defaults and manual overrides.

Caveats

  • OpenRouter tool-calling is disabled by default because some gateway/model combinations return unstable responses.
  • The README is essentially a long environment-variable reference; architectural details are sparse.

Verdict Good fit if you already run Actual Budget and want to automate the tedious work of categorizing imports. Skip it if you are looking for a standalone budgeting tool; this is strictly glue between two other systems.

Frequently asked

What is sakowicz/actual-ai?
This sidecar feeds uncategorized Actual Budget transactions to OpenAI, Anthropic, Ollama, or another compatible LLM, then writes back the guesses while flagging anything it couldn’t figure out.
Is actual-ai open source?
Yes — sakowicz/actual-ai is open source, released under the MIT license.
What language is actual-ai written in?
sakowicz/actual-ai is primarily written in TypeScript.
How popular is actual-ai?
sakowicz/actual-ai has 501 stars on GitHub.
Where can I find actual-ai?
sakowicz/actual-ai is on GitHub at https://github.com/sakowicz/actual-ai.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.