accountant24

agent
Security Audit
Fail
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Fail
  • process.env — Environment variable access in evals/__tests__/run.test.ts
  • eval() — Dynamic code execution via eval() in evals/lib/__tests__/cli.test.ts
  • rm -rf — Recursive force deletion command in evals/lib/__tests__/grader.test.ts
Permissions Pass
  • Permissions — No dangerous permissions requested
Purpose
This tool is a local-first, CLI-based AI agent designed for personal accounting. It allows users to log expenses, import financial statements, and ask questions about their money using natural language, storing all data locally as plain text.

Security Assessment
Overall Risk: Medium. The application handles highly sensitive financial data and processes local files (PDFs, images) via shell commands, which carries inherent risk. The rule-based scan failed for two reasons: dynamic code execution via `eval()` and the presence of a recursive force deletion command (`rm -rf`). However, both of these dangerous calls are located strictly within the testing and evaluation suites (`evals/`), not in the core application runtime. Additionally, one test accesses environment variables via `process.env`. No hardcoded secrets or dangerous broad permissions were found. Because the tool is designed to process personal financial documents, users should be aware of the data they are feeding into it, especially if connecting to a cloud-based LLM rather than a fully local model.

Quality Assessment
The project is licensed under the permissive MIT license and was actively updated very recently. However, community visibility and trust are currently very low. It only has 5 GitHub stars, indicating that the codebase has not been widely reviewed or battle-tested by the open-source community. Developers should expect early-stage software maturity.

Verdict
Use with caution — the tool handles sensitive financial data and is very new, though the identified dangerous code patterns are safely isolated in local test files rather than the main application.
SUMMARY

Local-first AI agent for personal accounting. Your data stays as plain text files on your machine. Works with any LLM — including local ones. Log spending, import statements, ask questions, teach the agent, track changes with git, and more.

README.md

Accountant24 - Local-first AI agent for personal accounting

Your data stays as plain text files on your machine. Works with any LLM, including local ones. Log spending, import statements, ask questions, teach the agent, track changes with git, and more.

https://github.com/user-attachments/assets/02a0f190-b560-4617-b1a8-8fc124417801

Session Snapshot #1  ·  Session Snapshot #2  ·  Demo Ledger

What you can do

Log spending in natural language

I spent $45 at Whole Foods yesterday

The agent figures out the details and adds it to your ledger as a proper double-entry transaction.

Import from files

Here is my March bank statement, please add missing transactions: ~/Downloads/statement-march.pdf

Add transaction from this receipt: ~/Desktop/receipt.jpg

Drop in a PDF bank statement, an invoice, or a photo of a paper receipt. The agent extracts the text, pulls out every transaction, and adds them to your ledger. The original file is archived in your workspace so you can refer back to it later.

Ask questions about your money

How much did I spend on food this month?

What's my net worth?

Show me all transactions from my last trip to Italy

The agent checks your ledger and gives you a clear answer.

Teach the agent as you go

I'm visiting Italy from April 10th to 15th.
Tag all transactions during this period with the 'trip_italy' tag.

My food budget is $600/month, please notify me when I get close.

Tell the agent once — it remembers and applies it when it matters.

Track every change with git

Every modification is auto-committed to a local git repo. Review your history anytime, roll back mistakes, or push to a private repo for backup.

Quick start

Install

brew install machulav/tap/accountant24

Run

a24

On first launch, Accountant24 creates a ~/Accountant24/ workspace with a pre-configured set of accounts, initializes a git repo, and you're ready to go.

Log in & pick a model

Use /login to connect your LLM provider, then /model to pick a model — and you're ready to start chatting.

Go fully local (optional)

Want your financial data to never leave your machine? Run a local model with Ollama.

  1. Download and install Ollama.

  2. Pull a Gemma 4 model:

    ollama pull gemma4:31b  # requires ~24 GB+ RAM
    
  3. Create a ~/Accountant24/models.json file to register the Ollama provider:

    {
      "providers": {
        "ollama": {
          "baseUrl": "http://localhost:11434/v1",
          "api": "openai-completions",
          "apiKey": "ollama",
          "models": [
            {
              "id": "gemma4:31b",
              "name": "Gemma 4 (31B)"
            }
          ]
        }
      }
    }
    
  4. Restart Accountant24, then use /model to select the Gemma 4 model — and start chatting. Nothing leaves your device.

How it compares

Accountant24 YNAB / Monarch Actual Budget hledger CLI
Data format Plain text (hledger) Proprietary cloud SQLite Plain text (hledger)
Data location Your machine Their servers Your machine Your machine
Input method Natural language Manual entry Manual entry Manual entry
AI Built-in, learns over time
Memory Persistent
Version control Git, built-in Via manual setup
Accounting Double-entry bookkeeping Envelope budgeting Envelope budgeting Double-entry bookkeeping
Bank sync Yes Yes (via add-ons)
GUI Terminal chat Web + mobile Web + desktop CLI
Price Free $100–$180/yr Free Free
Lock-in None (plain text) High Medium None (plain text)

Why I built this

For years, I managed my personal finances with YNAB. It worked — but every transaction was a manual chore. I'd fall behind, dread catching up, and put it off for weeks at a time.

One weekend I started playing with hledger and Claude Code, just to see if an agent could handle the bookkeeping for me. I wrote a couple of small skills, and to my surprise, it actually worked — and it was genuinely fun to use.

So I kept going. I packed everything into a standalone agent, tuned it for this one job, and started using it every day. I'm honestly happier with it than any tool I've used for my money before.

If it works this well for me, maybe it'll work for you too. That's why I'm releasing it as an open source project.

Why this stack

Each piece of this puzzle does one thing really well.

hledger is a mature accounting engine with proper double-entry bookkeeping. It's fast, reliable, and stores everything in plain text files you fully own. The catch: it has a steep learning curve — journal syntax, report commands, filter expressions. Not something most people want to deal with.

LLMs are great at understanding what you mean in plain language. But they hallucinate numbers and can't do accounting on their own. Left alone with a ledger, they'd quietly corrupt your books.

pi is the agent framework that glues everything together — sessions, tool execution, LLM communication. It's small, well-designed, and easy to extend.

git tracks every change to plain text files — which is exactly what a ledger is. The agent commits your changes as you go, so mistakes are easy to undo, and pushing to a private remote gives you backups.

Put them together and each piece covers the other's weakness. You speak naturally, the LLM figures out what you mean, hledger keeps the math honest, git makes every change traceable, and pi orchestrates the whole thing. That's the combination I ended up with after trying a few alternatives — and it's been working well ever since.

Credits

Accountant24 wouldn't exist without these projects:

  • pi by Mario Zechner — a minimal but powerful framework for building AI agents.
  • hledger by Simon Michael — the accounting engine that makes proper double-entry bookkeeping possible.

Both are remarkable pieces of software.

Contributing

This is a personal project I use every day, and I'd love to hear from anyone else using it. Bug reports, ideas, feedback, pull requests — all welcome. If you're planning a bigger change, open an issue first so we can talk it through.

License

MIT

Reviews (0)

No results found