Very nice project. I think this is is in the step of the right direction for agent-driven assistance.
> How it works: you import a CSV from any bank, in any currency.
I think this is where you're going to lose people. If you're having to pull in data from multiple different sources, each with their own flow for exporting, I think this might be a non-starter for creating good financial habbit.
I recnetly had success integrating my local AI agent with Monarch money via an open source monarch MCP project. It took a bit of (AI) hacking the login stuff, but now I'm able to pull transactions, query patterns, have a daily report generated from hermes, etc. Much more technical that your target audience but possibly offers some inspiration.
Appreciate the feedback. There's also a connected mode leveraging Plaid where transactions pass through servers memory and never stored. Outside the US, CSV is the only path for now otherwise agree CSV export is a chore for multi-bank users.
You could add support for something like simplefin.org, which provides an API for connecting to many different financial orgs. It is what I have been using for my local setup with Actual budget.
Actual budget is good. Connectivity in Australia sucks though so I've kludged my own approach (open banking connections to a single local aggregator then puppeteer to sign in and get an access token, then directly calling the aggregators internal APIs with it and pushing the data into a local Actual server using Actual's APIs).
A lot of banks make it easier to export PDF statements. I wonder if you could try adding the ability to extract transactions from a PDF. I've been working on something more limited (extracting just the account balance) with Qwen3 4B with decent success.
"if you're having to pull in data from multiple different sources, each with their own flow for exporting"
you say this, but i got ChatGpt to just open chrome logged into two credit cards and a bank app and download everything with a certain criteria (i did this to populate items in a travel split app). So maybe it's not that bad
Very cool. What does it use the model for? Could you replace it with something lighter, like some classifiers[0]? Or do you need the chat? Besides the chat, what other tasks is the model used for? Thank you!
I use budgeting apps on a daily basis, and I'll just share my personal feedback: I'm absolutely not downloading ~3 gigs for a budget app. Everything I need to "ask" the app is already available to me in the form of reports, charts, and tables. I don't really have many open-ended questions about my budget because anything important to track is already handled deterministically.
Also yes, it's local but the data you're importing is already with a private organization on the cloud. In that sense, having a local copy of it does not really do anything for me in terms of privacy etc.
As I said, I use budgeting apps daily (one for personal use (self-made), another for business (very old freenium era software that has not failed me in the last 5+ years of self-hosting it)) and I do not see any need for generative AI in that workflow from my pov. YMMV
> Also yes, it's local but the data you're importing is already with a private organization on the cloud. In that sense, having a local copy of it does not really do anything for me in terms of privacy etc.
I'm not sure what you mean? Surely processing on your computer instead of Anthropic's computer is a significant privacy improvement?
Thanks for the feedback and describing your budgeting routine and needs. Just to add that the 2.5G checker can be switched off in Settings. The reader is only a small tuned 0.6B model (397 MB).
Chat is optional, the app is a complete and free budgeting app (reports, rules, money flow, forecast etc.). As for privacy, "local" usually means your data not your questions, sure the banks hold the transactions but your questions and analysis shouldn't go to the cloud hence this project.
I love the idea of local only apps woth no network comms. I do wish macOS had some way you could enforce that out of the box though. Rather than trust the claims of the developer.
Another app I love that does the same. Queryable which lets you natural language search your photos on device on iOS and predates most of the current AI craze (2022) and also apple adding this themselves to photos:
https://queryable.app/
Indeed, macOS only blocks incoming traffic. For this app and in "local mode", there are only two kinds of requests: one to download the models from HF and an optional version check that sends nothing about the user and can be turned off. A simple test, once you download, try turning off your wifi and use the app.
Apologies, will try to simplify. In a nutshell: Pulse Local is a free budgeting app where you could import bank transactions and ask about spending with the AI running on your machine so neither the data nor your questions leave (in "local mode").
The first thing I look for on that kind of page is a screenshot. Those shouldn't be so far down. Also way before showing your app, you show a massive video of a leaf, that's not what people are looking for.
you only need 2 sections. an above the fold area and something below the fold. simple.
thanks for making this. “its
private” is not a selling point, whats other differentiators does it have? really the AI analysis and potential agentic aspect right?
you could point out that it doesnt use data centers or harm the environment without explaining how or what that means upfront
Please don’t. This is really a matter of personal preferences. I like long informative landing pages that as I scroll, give me more and more reasons to try the software.
Compare the omp landing page a few months ago versus now: https://web.archive.org/web/20260624030333/https://omp.sh/ versus https://web.archive.org/web/20261007154534/https://omp.sh/ The former does a compelling job telling me why I should try it by listing its advantages. By the time I got to hashline I became convinced. The latter landing page has a single sentence that’s generic and vague. I would not have tried omp at all if its landing page looked like what it is today.
Feedback: manually categorizing transactions is a common and tedious task. Your 'for review' transaction list shows the category, but it's not editable. To review and fix the category, you must:
- read the category
- click on the '...' button at the end of the line (not near the thing you want to correct, and not my first guess for settings the category)
- this creates a popup
- mouse into the popup and click on the dropdown for setting the category.
Just have the category label in the list clickable, to show the category dropdown.
It saves one click, two mouse movements, and having to figure out that '...' is the action you need to fix a category.
This makes me skeptical. This is a key action - 1. Import, 2. Categorise ... - and it seemed like it received little thought from the developer. It's not a bug to fix mate, it's a core user flow that's very unthoughtful.
Thanks. Well, accuracy depends on the code that owns the ledger, which does all the math against the app data model. I also added checks that compare a couple of readings of the question through the same calculation layer. Since there are also many other moving parts coupled with the ledger (categories, rules, transfers, refunds), it just felt better to own the whole stack.
Plaid is the main risk - if they were hacked, that's way worse than a log of my AI queries. What's exciting with LLMs is the possibility to do classification much better.
I gave it a go and imported a transaction CSV from my bank - National Australia Bank. 150 row CSV. The Description import column was assigned to the Merchant Name CSV column (the Merchant import column was also assigned to this CSV column) and as a result 25 rows were going to be ignored. Here's the CSV header row:
Date,Amount,Account Number,,Transaction Type,Transaction Details,Balance,Category,Merchant Name,Processed On
Hand-picking the Description column to be assigned to the details column sorted it out; not sure how you're auto-selecting column mappings but maybe 'details' should be recognised as closer to 'description' than 'merchant name' is.
You have a free budgeting app for Mac? Can you have as an app so I can download it in my iPhone? Can Pulse Local connect to my bank app and automatically records my spendings?
Also am curious about your reasoning behind usage of Qwen3.0 model as well!
Hi, only a Mac app today, working on a Windows app next. As for bank connections, yes this was requested and I added a "Connected Mode" ($29 a year Sync Pass) which syncs US banks via Plaid otherwise you can import a CSV which also works with any bank and any currency. As for Qwen3, 0.6B is small enough to run fast on most laptops, showed good evals and easily tunable. In my tests, the tuned 0.6B model scored about level with gpt-4.1-mini on a dataset of 77 real budgeting questions and outperformed a stock 8B model as well.
Ive got a similar story but with slightly harsher constraints. I also want to build private AI app but for the phone. As you know they have very little RAM per app and I needed to somehow circumvent it. So I picked qwen2.5-0.5B as it was good for the purpose of answering people and keeping the dialog and no overkill + whisper model to add stt feature (437 MB for both). I think that if your app does only one job, you can use smaller model and fine tune it a bit
after a “not sure,” how often does reprhasing get a correct answer on the next try/do users give up? retries could make a simple lookup surprisingly slow?
Great question and in all honesty, real users just started downloading the app today so I don't have any idea yet on how often a rephrased question succeeded. That being said, a retry costs about 12 to 14 seconds with the checker against 1/10th of a second without so it doubles the wait. What I've tested was that with the checker, even though fewer questions get an answer (about 47% right against 60% without), wrong answers fell to 5 in a sample of 494 questions (compared to 100 wrong without the check). Conversations are hit the most from the moment it answers "not sure" so nothing to build on for the next question. I've also given users the option to switch off the checker for speed. I still have many ideas to try and hopefully I keep improving trade-offs.
curious what ppl actually come back for after the first few days. do they keep asking questions about their spending? feels like a lot of the useful stuff would be things they wouldn't think to ask about
In all honesty, I don't know what would bring people back since I just launched but a few things the app does unprompted: patterns it finds in spending (insights), money and cash flow, forecast, as for the chat there are always a few suggested questions so you don't always need to know what to ask. But agree, it would be great to hear what returning users actually do.
I don't know if this is vibe-coded or something, but it works very badly.
I tried to change the currency from USD to EUR. The filter dialogue didn't work, clicking it only focused the text field for a few milliseconds and I couldn't get a single character typed.
Then I closed the settings, and the whole app froze until I had to force-quit it. Uninstalled already, not a good first impression at all.
Thanks again for the report. I did see that the app refreshed its window many times during the first model download and each refresh stole focus from the search field, that's why typing did not work.
The fix is ready and shipping it soon (version 0.4.1)
As for the freeze, I honestly couldn't reproduce it but I suspect it's due to the above symptoms and the fix will likely remove it. Happy to let you know if you email me so that you can retry once the new version is shipped.
> How it works: you import a CSV from any bank, in any currency.
I dropped the CSV from my bank and only got 2 fields. I fixed the CSV and suddenly the IBAN BE12 3456 7890 123 became BE12 in Pulse
First operation I did was switch it to Belgium. "type to search" Didn't work.
Saving after manually setting it was a really long beach ball.
Can't say I'm impressed. It had potential but didn't seem to develop it.
Thanks for the feedback. Aware of the search field bug, already fixed in 0.4.1 which is shipping soon. Fixing European CSVs and cut IBAN now. Investigating the country-save hang. If you’re keen to retry, email me niz@pulseos.finance and will let you know.
Big thanks to everyone who downloaded and tried the app, and to those who chipped in even though they could have downloaded it for free (I was very surprised to see so many supporting the effort). I just shipped 0.4.1, which targets feedback from splittydev, edarchis about typing issues, codebje about AU banks and CSV formats, edarchis (Belgium) about European CSVs and IBAN cuts, edarchis and splittydev about memory pressure while the checker model is being loaded, robotresearcher and kailovel about categorization (still a work in progress), altmanaltman and a few others about the heavy checker (off by default now for Macs with 16 GB of RAM or less), and many other pieces of feedback.
0.4.1 is live, and the app will automatically find the update at launch or within 6 hours, download it in the background, and show “Restart to apply” when ready. You can also download it again from pulseos.finance. I'm dedicated to working on this app full-time, so please use the feedback section in the app to share features, bugs, etc., or email me at niz@pulseos.finance.
terwint | 22 hours ago
> How it works: you import a CSV from any bank, in any currency.
I think this is where you're going to lose people. If you're having to pull in data from multiple different sources, each with their own flow for exporting, I think this might be a non-starter for creating good financial habbit.
I recnetly had success integrating my local AI agent with Monarch money via an open source monarch MCP project. It took a bit of (AI) hacking the login stuff, but now I'm able to pull transactions, query patterns, have a daily report generated from hermes, etc. Much more technical that your target audience but possibly offers some inspiration.
[OP] niztk | 21 hours ago
cortesoft | 21 hours ago
[OP] niztk | 21 hours ago
unsnap_biceps | 21 hours ago
Bridge is actually provided by mx.com, pretty much the same service as Plaid.
elyobo | 20 hours ago
post-it | 21 hours ago
[OP] niztk | 21 hours ago
lathiat | 21 hours ago
It also requires you generally to trust some third party with your data.
Here’s an API one for Australia / New Zealand / USA: https://redbark.com/developers
[OP] niztk | 21 hours ago
calyhre | 16 hours ago
[OP] niztk | 15 hours ago
i_am_a_squirrel | 19 hours ago
you say this, but i got ChatGpt to just open chrome logged into two credit cards and a bank app and download everything with a certain criteria (i did this to populate items in a travel split app). So maybe it's not that bad
xyst | 19 hours ago
nickthegreek | 19 hours ago
i_am_a_squirrel | 18 hours ago
arm32 | 22 hours ago
loloquwowndueo | 22 hours ago
arm32 | 3 hours ago
nico | 22 hours ago
0: https://jeffyclassify.com/blog/when-llms-fail-at-classificat...
j45 | 22 hours ago
Still it could be handy to be able to do that locally, maybe model tweaks could be shared back upstream.
The bridge between deterministic accounting principles to non-deterministic patterns trying to simulate it at will is a pretty big thing to cover.
altmanaltman | 21 hours ago
Also yes, it's local but the data you're importing is already with a private organization on the cloud. In that sense, having a local copy of it does not really do anything for me in terms of privacy etc.
As I said, I use budgeting apps daily (one for personal use (self-made), another for business (very old freenium era software that has not failed me in the last 5+ years of self-hosting it)) and I do not see any need for generative AI in that workflow from my pov. YMMV
post-it | 21 hours ago
I'm not sure what you mean? Surely processing on your computer instead of Anthropic's computer is a significant privacy improvement?
[OP] niztk | 21 hours ago
Chat is optional, the app is a complete and free budgeting app (reports, rules, money flow, forecast etc.). As for privacy, "local" usually means your data not your questions, sure the banks hold the transactions but your questions and analysis shouldn't go to the cloud hence this project.
lathiat | 21 hours ago
Downloads will already be on the machine.
https://developer.apple.com/documentation/foundationmodels
[OP] niztk | 21 hours ago
lathiat | 21 hours ago
Another app I love that does the same. Queryable which lets you natural language search your photos on device on iOS and predates most of the current AI craze (2022) and also apple adding this themselves to photos: https://queryable.app/
[OP] niztk | 21 hours ago
unsnap_biceps | 21 hours ago
vunderba | 17 hours ago
https://github.com/objective-see/lulu
snehesht | 21 hours ago
[OP] niztk | 21 hours ago
tantalor | 21 hours ago
[OP] niztk | 21 hours ago
benhurmarcel | 14 hours ago
[OP] niztk | 14 hours ago
seemaze | 21 hours ago
[0]https://fastino.ai/blog/fastino-nemotron-3-5-lightning-finan...
yieldcrv | 20 hours ago
you only need 2 sections. an above the fold area and something below the fold. simple.
thanks for making this. “its private” is not a selling point, whats other differentiators does it have? really the AI analysis and potential agentic aspect right?
you could point out that it doesnt use data centers or harm the environment without explaining how or what that means upfront
[OP] niztk | 20 hours ago
kccqzy | 19 hours ago
Compare the omp landing page a few months ago versus now: https://web.archive.org/web/20260624030333/https://omp.sh/ versus https://web.archive.org/web/20261007154534/https://omp.sh/ The former does a compelling job telling me why I should try it by listing its advantages. By the time I got to hashline I became convinced. The latter landing page has a single sentence that’s generic and vague. I would not have tried omp at all if its landing page looked like what it is today.
[OP] niztk | 19 hours ago
yieldcrv | 18 hours ago
the layouts with the most aligned engagement wins rollout to all users
coding isnt the hard part of a product launch
robotresearcher | 20 hours ago
- read the category
- click on the '...' button at the end of the line (not near the thing you want to correct, and not my first guess for settings the category)
- this creates a popup
- mouse into the popup and click on the dropdown for setting the category.
Just have the category label in the list clickable, to show the category dropdown.
It saves one click, two mouse movements, and having to figure out that '...' is the action you need to fix a category.
[OP] niztk | 20 hours ago
robotresearcher | 17 hours ago
[OP] niztk | 16 hours ago
kailovel | 13 hours ago
[OP] niztk | 13 hours ago
zyk_computer | 19 hours ago
[OP] niztk | 19 hours ago
herf | 18 hours ago
[OP] niztk | 18 hours ago
codebje | 18 hours ago
[OP] niztk | 18 hours ago
haisin5555 | 18 hours ago
Also am curious about your reasoning behind usage of Qwen3.0 model as well!
[OP] niztk | 18 hours ago
dsjakupov | 13 hours ago
[OP] niztk | 13 hours ago
LewisOrton | 18 hours ago
[OP] niztk | 16 hours ago
fionaswarovskij | 15 hours ago
[OP] niztk | 15 hours ago
splittydev | 14 hours ago
I tried to change the currency from USD to EUR. The filter dialogue didn't work, clicking it only focused the text field for a few milliseconds and I couldn't get a single character typed.
Then I closed the settings, and the whole app froze until I had to force-quit it. Uninstalled already, not a good first impression at all.
[OP] niztk | 14 hours ago
[OP] niztk | 13 hours ago
The fix is ready and shipping it soon (version 0.4.1)
As for the freeze, I honestly couldn't reproduce it but I suspect it's due to the above symptoms and the fix will likely remove it. Happy to let you know if you email me so that you can retry once the new version is shipped.
kailovel | 13 hours ago
And two thirds of my transactions went in that pile. Brutal.
Uninstalled.
[OP] niztk | 13 hours ago
edarchis | 13 hours ago
First operation I did was switch it to Belgium. "type to search" Didn't work. Saving after manually setting it was a really long beach ball.
Can't say I'm impressed. It had potential but didn't seem to develop it.
[OP] niztk | 13 hours ago
[OP] niztk | 9 hours ago
0.4.1 is live, and the app will automatically find the update at launch or within 6 hours, download it in the background, and show “Restart to apply” when ready. You can also download it again from pulseos.finance. I'm dedicated to working on this app full-time, so please use the feedback section in the app to share features, bugs, etc., or email me at niz@pulseos.finance.