Hey HN, I'm Eric. I wanted programmatic access to my own bank transactions but every time I tried, the friction got the best of me. CSVs from five banks in five formats, or Plaid, which is good but built for companies (business entity, compliance review, sync pipeline you host yourself). I just wanted to query my transactions.
So I built Shim.Finance Link your bank accounts, get an API key, query your data. TypeScript SDK, 10,000+ institutions via Plaid under the hood. Shim handles token rotation, connection monitoring, retries, and encryption. You get a query API instead of a sync API. No webhook infrastructure, no local database.
Every aggregator in this space is built for businesses. You literally cannot use most of them without a business entity. You shouldn't need to form an LLC to access your own financial data. It's in beta and free right now. I'd love to hear what you'd build with it: https://www.shim.finance
As you mentioned, the format of these documents can be wildly different between countries. Curious, do you normalize them to some sort of intermediate representation before running your lending algorithms? How long does it take to spin up a new country or a new domain?
Nice. I've been thinking about something tangential: using the same hook mechanism to guide the agent toward better tools, not just block bad ones.
Claude Code sometimes issues Bash commands for things it could easily do with builtin tools (e.g., shelling out to grep when it has a dedicated Grep tool). A hook that catches those and nudges the agent back — "you already have a tool for this" — could improve session quality without blocking anything.
I suspect there's a lot of overlap with what you've built: parse the command into tokens, run it against rules, decide. The difference is the output is "redirect" instead of "deny." Have you thought about non-blocking rules that warn or suggest rather than reject?
Warn mode is the easy win and probably where I'd start. Redirect is more interesting but you're handing the agent a rewritten command it didn't ask for, which could be surprising in ways that hurt more than help.
The hesitation about log upload is exactly why K9 Audit works differently — local by default, SHA256 hash-chained, zero data leaves your machine unless you explicitly configure a sync endpoint. pip install k9audit-hook and drop one JSON file in .claude/. https://github.com/liuhaotian2024-prog/K9Audit
If I have to physically still go to the bank, it really hasn't disrupted much. The iPhone created an opportunity... the banks investing around the technology is the disruption. ATM itself couldn't unlock as much which I suppose is the paradigm mentioned in the article.
Nice work. I love getting more data accessible via API.
What are the sharp edges if someone wanted to do this themselves? I assume there are official sources for this data but it's not trivial to "throw my agent at it".
Bravo. This is my dream and also my nightmare. I was super into the quantified self movement a while back, before Apple Watch, writing Withings Scale API wrappers in Ruby and Fitbit days.
Every time I try to seriously track metrics of my life, the excitement of the insight gets worn away by the friction of recording and managing. I expect LLMs can help reduce the cost of this by an order of magnitude but then, as you mention, the question is, what do you do / change / learn because of the data?
I recently started tracking nutrition macros with an iOS app MacroFactor which I really like. This is the first time taking my weight doesn't feel like a IDK SHRUG moment and I can actually map my food intake to my weight.
Finances is probably the other highly actionable data source that is such high friction to manage (downloading CSVs, OFXs, monthly...) that it has always been a false start for me. I finally wrote a service to talk to Plaid directly and I successfully used it to categorize my business expenses at tax time. I finally have programmatic access to my bank account data!
You conclusion is definitely a cautionary take:
> the main conclusion is that it is not worth building your own solution, and investing this much time.
But, perhaps a subset of that data you find useful.
For the few times that I have tracked myself doing various activities, I have found that I didn't even need to do anything with the data, I was actively changing habits whilst I knew I was being monitored. For example, I wore a GCM for a few weeks and I found it difficult to live my "normal" day to day lifestyle. I wanted to do the things I felt were "right" and "healthy". Whether or not that is a good thing or not is a different topic, but just my 2c.
oh man... I am not sure I am ready to trust CC at that level. Though, this year I did vibe an expense tracker and heavily used CC to look at and categorize entries and apply appropriate Schedule C categories to my business expenses.
It might not have been faster this year... but I expect it will be next year.
I am also a fortunate owner of a 100+ year old home. Why is the lath and plaster so susceptible to cracking?! That is my nemesis. I haven’t tried to hang a TV though yet.
So I built Shim.Finance Link your bank accounts, get an API key, query your data. TypeScript SDK, 10,000+ institutions via Plaid under the hood. Shim handles token rotation, connection monitoring, retries, and encryption. You get a query API instead of a sync API. No webhook infrastructure, no local database.
Every aggregator in this space is built for businesses. You literally cannot use most of them without a business entity. You shouldn't need to form an LLC to access your own financial data. It's in beta and free right now. I'd love to hear what you'd build with it: https://www.shim.finance