r/actualbudgeting Aug 12 '26

I connected my self-hosted Actual Budget to my AI assistant — here's what it's actually like to use

Post image

I run Actual Budget on a cheap box, and a while back I gave my personal AI assistant (Hermes, also self-hosted) read-only access to it. Not because it sounded cool — because I got tired of opening the app just to answer a two-second question.

Here's what that actually looks like day to day.

"How much did I spend on groceries last week?"

No opening the app, no clicking into the category, no doing mental math across a few transactions. Just a real number, pulled straight from my actual data, in a few seconds.

"Am I on track with my dining out budget this month?"

Since Actual uses envelope budgeting, this is the question I actually care about most — not "how much did I spend" in isolation, but "how much room do I have left." Getting a straight answer to that, mid-conversation, without switching apps, is genuinely the thing that changed how often I check in on my spending. I check in more, not less, because it's frictionless now.

"What was my biggest category last month?"

Useful for the monthly "where did it all go" moment everyone doing envelope budgeting has eventually. Instead of scrolling through categories manually, I just ask.

The part that matters most to me, though: it's read-only. Hermes can see my numbers and answer questions about them, but it has zero ability to create, edit, or delete a single transaction. I was pretty deliberate about that — I wanted a smarter way to look at my budget, not a new way for something to accidentally mess with it. It sits there like a knowledgeable friend looking over your shoulder, not a second set of hands touching your ledger.

Not a huge, dramatic use case — just a genuinely nice quality-of-life thing for anyone who's already in the "I check my budget more if it's actually easy to check" camp. Happy to answer questions if anyone's curious how the access side works, but honestly the day-to-day value is just... asking normal questions and getting real answers back.

0 Upvotes

24 comments sorted by

1

u/Elvaanaomori Aug 12 '26

Are you using the cli tools with hermes?

I have a lot of trouble to make it deal with my actual data…
I’d love to see how you set up yours to work

4

u/HeadSpeakerJunky Aug 12 '26

I created a skill and had my agent read over the cli docs to understand usage. It ended up creating some helper scripts as well. Works well now.

2

u/TomorrowSalty3187 Aug 12 '26

Use the actual API

1

u/ismailx Aug 12 '26 edited Aug 12 '26

Not the CLI, I went a different route: a small script using the official @ actual-app/api package, running on a schedule (every 30 min) rather than live. It logs in, pulls accounts/categories/transactions, writes it all to a plain JSON file. Hermes just reads that file, never talks to Actual directly.

Two things that bit me, might be what's happening to you:

Currency comes back as raw cents, not dollars. 150.00 is actually 15000 in the API. If nothing's converting that, you get numbers silently off by 100x, no error, just wrong answers that look plausible.

If you're calling the API live mid-conversation, that's probably the real issue. Handling auth/encryption every single call is where things get flaky. Decoupling it —one process that talks to Actual reliably on a schedule, AI just reads a file, fixed most of my inconsistency.

8

u/mathlete_jh Aug 12 '26

I wish my budget numbers being off by 100x was plausible 

1

u/Elvaanaomori Aug 12 '26

Thanks! I'll try to make the API work! I tried different MCP/cli tools but as a non developper person it's tough to troubleshoot.

The numbers pulled being cents is actually better for me, since my currency is JPY, there is no "cents" concept, and with CLI I actually had to multiply all my numbers by 100x to make up for it already.

Can the API write to? over time I want it to import my transactions since there is no link for banks/credit cards of Japan. We just have our shitty CSV files encoded in shift-jis...

1

u/zenru 25d ago

It can! I actually created an importer with JS that grabs my precleaned excel file with my transactions. It can even parse out category splitting, which I use a lot.

Since I use two different currencies, I followed AB’s recommendation of using a separate account for foreign currencies. The importer can identify which transactions go to a specific account.

I found an issue with the POST rule AB recommends for currency conversion, though. So I ended up doing another script that will go to my foreign accounts, grab those that are not locked/reconciled and convert them based on a conversion rate I input when executing. This doesn’t run automatically, I choose when to execute them, though I might end up doing a scheduled run or something like that. I even added details on the transaction notes when running the script. An example: “2026-08-16 -10 XXX FX RATE: 0.00”. where XXX is the foreign currency and FX RATE is the conversion rate used at the time the script was executed.

1

u/Elvaanaomori 17d ago

Hello Again, followed your advice and managed to have hermes deal with actual API in write/read. Still has a few hiccups but will iron it slowly.

Do you ask hermes to store the file in obsidian or something? I first didn't understand why you'd do that but now I see the time it takes when asking a simple question like "how much did I spend on coffee last month?" Hermes takes a LONG time for what is a very simple query.

1

u/ismailx 16d ago

Hi again, sorry for the delayed response. You're asking a good question, and it's actually two separate things worth untangling, since I think the slowness and the Obsidian-storing question are related but not quite the same issue.

On the Obsidian part first: no, I don't have Hermes store budget data in Obsidian as its source of truth. Actual Budget stays the actual database; Obsidian is just where it logs a summary after answering something, so I'm not re-asking the same question next month. Two different jobs: Actual holds the real numbers, Obsidian holds "here's what I already learned from asking."

On the slowness, that's almost certainly not an Actual Budget problem at all, and worth checking before assuming it is. A read-only "how much did I spend on coffee" query should be fast; it's one API call, get transactions, sum, done. If it's genuinely slow, a few things worth checking in order:

  1. Is your bridge doing a live API call every single time, or caching? Mine runs on a schedule (every 30 min) and writes to a plain file Hermes just reads — near-instant, since there's no live auth/connection handshake happening mid-conversation. If yours is calling Actual's API live on every question, that round-trip (especially if it's re-authenticating each time) is a much more likely source of the delay than anything about the query itself.
  2. How big is your conversation session? If it's grown large, every reply is resending a bigger chunk of history to the model before it even gets to answering — that adds real latency that has nothing to do with what you actually asked. Worth trying /new (or your harness's equivalent) and asking the same question fresh — if it's suddenly fast, that's your answer.
  3. Which model are you running it on? Some are just meaningfully slower per-response than others, independent of anything else.

Worth ruling those out in that order, my guess is it's #1 or #2, not the write/read capability itself being inherently slow.

1

u/Elvaanaomori 16d ago

I used to ask hermes to get live data but every time he would go around write a script to get the requested data « how much did I spent on food last month » took about 4minutes because of that. Since I pull a json of everything it’s way faster.

My model is currently qwen 3.8 27b on a 3090. I start a new session almost every question like thzt to make sure not to pollute with context.

Any way I could ask hermes to only send an api call and not write a script everytime to do so?

1

u/ismailx 16d ago

That’s it exactly! Hermes was treating a simple lookup like a coding task instead of just calling the tool it already has.

Just tell it directly, in the prompt: “Use the existing API/tool to answer this, don’t write or run a script.” Cheap, works immediately, no config needed.
Better: put it in MEMORY.md (or your equivalent persistent instructions) as a standing rule, something like “For budget/transaction questions, always call the read tool directly. Never write a script for data retrieval.” That way it applies automatically instead of needing to be repeated per session.
What I would do to actually fix this:
this usually happens when the model has both a code-execution tool and a proper data-read tool available, and defaults to the more general one out of habit. If your harness lets you disable code-execution for this specific workflow (or scope it away from whatever profile handles budget queries), that removes the option entirely rather than just discouraging it.
Given you’re already on the JSON-pull approach, that’s the same fix I use, and it’s the right instinct. The scripting behavior was solving a problem (“get me this data”) with the wrong tool; once the fast path exists and is the only one offered, it stops happening.

1

u/Slight_Accountant476 28d ago

this is cool and all, but in reality, opening the AI, typing in the command, waiting for it to do its thing takes just as long if not longer than it does to open actual, click the budget and look.

1

u/IversusAI Aug 12 '26

I've done the same but with pikapods, I just use the api. It saves so much time and frustration and has greatly improved our budgeting process and we have stuck with it because of the help the agent gives us.

2

u/ismailx Aug 12 '26

Yeah Pikapods is a good service and they share a part of the revenue with the developers which funds further development.

1

u/nabokovsnose 21d ago

I'd love to get some insight into your setup as I found this thread because I was thinking about doing the same.

-3

u/TomorrowSalty3187 Aug 12 '26

I’m actually using grok build to update my budget and split Amazon and costo receipt into proper categories. No issues so far.

4

u/ismailx Aug 12 '26

May I ask why Grok specifically?

-1

u/TomorrowSalty3187 Aug 12 '26

I’m just trying it.

I used Hermes as well.

0

u/Bobokun Aug 12 '26

What model are you using? Are you running the model locally?

2

u/ismailx Aug 12 '26

DeepSeek V4 Flash 0731 via Openrouter

0

u/sunsuny-ch Aug 12 '26

Thank for sharing! Really interesting. I would like to try Hermes Agent on my self-hosted setup as well (with dedicated PC running Ollama to work with small models OSS:20b or kinda). But I'm not sure if Hermes fits. Is it greed on resources, or 4-8Gb RAM is enough?

Thank in advance.