Rendered at 16:20:54 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
terwint 17 hours ago [-]
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.
niztk 16 hours ago [-]
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.
cortesoft 16 hours ago [-]
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.
elyobo 15 hours ago [-]
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).
unsnap_biceps 15 hours ago [-]
Does your financial orgs actually support simplefin or are you using simplefin bridge?
Bridge is actually provided by mx.com, pretty much the same service as Plaid.
niztk 16 hours ago [-]
Thanks, will surely look into this.
lathiat 16 hours ago [-]
There’s similar support from many banks in many countries. But obviously will be a bunch of work to support them all.
It also requires you generally to trust some third party with your data.
Thanks, I was planning to add country integrations outside the US. Appreciate the pointer here.
post-it 16 hours ago [-]
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.
niztk 15 hours ago [-]
I've tried with some success but will spend more time on the input layer.
calyhre 10 hours ago [-]
I had great success using enablebanking.com for personal usage. The setup is a bit cumbersome, but works really well
niztk 10 hours ago [-]
Thanks, will surely give this a try. So far, I have US today with Canada, UK, AU, NZ and Europe on the roadmap.
i_am_a_squirrel 14 hours ago [-]
"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
xyst 13 hours ago [-]
You trust anything run through a black box model to remain private? Laughable.
i_am_a_squirrel 12 hours ago [-]
tapping my credit card to buy things and generate the financial data in the first place was already trusting a bunch of black boxes anyway right?
nickthegreek 13 hours ago [-]
aren’t they all black box models?
fionaswarovskij 10 hours ago [-]
[dead]
niztk 4 hours ago [-]
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.
lathiat 15 hours ago [-]
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/
unsnap_biceps 15 hours ago [-]
Little snitch is the best solution for firewalling off applications from the network
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.
nico 17 hours ago [-]
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'm curious why you built a full budgeting app instead of adding a local AI chat to an existing open source app like Actual Budget.
niztk 13 hours ago [-]
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.
edarchis 7 hours ago [-]
> 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.
niztk 7 hours ago [-]
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.
codebje 13 hours ago [-]
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.
niztk 13 hours ago [-]
Thanks for giving it a spin. Will fix the mapping.
splittydev 8 hours ago [-]
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.
niztk 8 hours ago [-]
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.
niztk 8 hours ago [-]
Thanks and this is surely a bug. Investigating now. If you are willing to retry later as soon as I ship a fix, please email me niz@pulseos.finance
haisin5555 13 hours ago [-]
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!
niztk 12 hours ago [-]
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.
dsjakupov 7 hours ago [-]
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
niztk 7 hours ago [-]
Agree, a small tuned model, in my case a 0.6B Qwen, beat a bigger general model: stock 8B Qwen.
tantalor 15 hours ago [-]
This is the most confusing product page I've ever seen. What is it even trying to tell me?
niztk 15 hours ago [-]
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").
benhurmarcel 8 hours ago [-]
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.
niztk 8 hours ago [-]
fair, screenshots will move up.
kailovel 8 hours ago [-]
Found the review screen very hard to use. You can't bulk change categories, you have to awkwardly double click into each one.
And two thirds of my transactions went in that pile. Brutal.
Uninstalled.
niztk 8 hours ago [-]
Appreciate the honest feedback.
herf 13 hours ago [-]
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.
niztk 13 hours ago [-]
Plaid is only used in "Connected Mode" which is optional. Local mode never touches Plaid, it's all CSV for now but will work on PDF parsing next.
LewisOrton 12 hours ago [-]
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?
niztk 10 hours ago [-]
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.
sebastienburel 2 hours ago [-]
[flagged]
hensenjuang 11 hours ago [-]
[flagged]
snehesht 15 hours ago [-]
Congrats on launching, I’m working on a similar idea with local models.
niztk 15 hours ago [-]
Thanks and good luck!
fionaswarovskij 10 hours ago [-]
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
niztk 9 hours ago [-]
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.
robotresearcher 14 hours ago [-]
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.
niztk 14 hours ago [-]
Thanks much! Will ship a fix soon.
kailovel 8 hours ago [-]
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.
niztk 8 hours ago [-]
Fair, I'll ship a few improvements and continue iterating with users.
robotresearcher 12 hours ago [-]
Great! Good luck to you with the launch. The main idea of on-device models is a very good one.
niztk 10 hours ago [-]
Thanks a lot! Will keep iterating.
altmanaltman 16 hours ago [-]
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
niztk 16 hours ago [-]
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've tried, they were really bad for this use case.
post-it 16 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.
I'm not sure what you mean? Surely processing on your computer instead of Anthropic's computer is a significant privacy improvement?
yieldcrv 15 hours ago [-]
long landing pages are a sign of AI psychosis
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
niztk 15 hours ago [-]
All fair points, will simplify the page.
kccqzy 13 hours ago [-]
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.
niztk 13 hours ago [-]
fair, will likely tweak the top but keep some details.
yieldcrv 12 hours ago [-]
A/B tests solve this. data driven results from multiple flows delivered to subsets of users
the layouts with the most aligned engagement wins rollout to all users
coding isnt the hard part of a product launch
pcvetkovski 14 hours ago [-]
[dead]
loopzy 9 hours ago [-]
[flagged]
yunicc 14 hours ago [-]
[flagged]
vivid_aijoy 15 hours ago [-]
[flagged]
phi_blankslate 16 hours ago [-]
[flagged]
slambek 11 hours ago [-]
[dead]
aldyernesto 4 hours ago [-]
[flagged]
cole_h06 14 hours ago [-]
[flagged]
elais-dev 14 hours ago [-]
[flagged]
LateCheckOut 16 hours ago [-]
[flagged]
niztk 16 hours ago [-]
[dead]
arm32 17 hours ago [-]
Your domain name is younger than 30 days old so my firewall blocks it. :/
loloquwowndueo 16 hours ago [-]
So tune your firewall? Sounds like you’re asking OP to fast forward time so his understandably brand new domain passes your weird age hurdle?
> 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.
Bridge is actually provided by mx.com, pretty much the same service as Plaid.
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
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
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.
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/
https://github.com/objective-see/lulu
0: https://jeffyclassify.com/blog/when-llms-fail-at-classificat...
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.
[0]https://fastino.ai/blog/fastino-nemotron-3-5-lightning-finan...
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.
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.
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.
Also am curious about your reasoning behind usage of Qwen3.0 model as well!
And two thirds of my transactions went in that pile. Brutal.
Uninstalled.
- 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.
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
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.
Downloads will already be on the machine.
https://developer.apple.com/documentation/foundationmodels
I'm not sure what you mean? Surely processing on your computer instead of Anthropic's computer is a significant privacy improvement?
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
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.
the layouts with the most aligned engagement wins rollout to all users
coding isnt the hard part of a product launch