This year, I vibecoded my taxes
It sounds like a really terrible idea but this year, I vibecoded my taxes (in Germany).
It's a lot better than it sounds because it took
- no sharing data with shady American companies
- Very low risk of misfiling
I really wanted to do my taxes on the command line even before AI and looking closely at the automation situation, I found out that German Finanzamt did something genuinely nerdy.
They encoded the complete German tax filing rules into a C library that you can use to submit your taxes. They release a new version every year. That's what commercial tax software actually uses- they're not going through any tax laws themselves, they're just putting a pretty face on the standard government software that already guarantees correctness. (Some software gives you a bit of advice but it's mostly a few checklists).
The downside of using the government library is that all forms are XML, and they contain the most cryptic english german mix abbreviations you could imagine, and so does the C-API that gets exposed by it. Trying to get my first version done I gave up because it was just taking too long, but it turns out this sort of cryptic-but-predictable interface is absolutely perfect for AI-assisted coding.
So I came up with the idea of having all my income and expenses in a CSV file and personal data in a config file, and a command line tool to put it all together and submit the returns I owe. In my case, that's usually a mix of freelance and business income as well as capital returns. It also supports all the common deductions in a seperate CSV.
It's all text!!! No more clicky clicky drive me crazy!!!
I called it viking, named after the emotion of agreeing to give a stranger valuables in Western Europe.
http://github.com/capocasa/viking
Now- enter the true AI use case. Now I was super hesitent to give AI access to very personal data, but then I figured- it's not a huge deal to give someone, say, your tax ID or a credit card number over the phone. The phone company promises secrecy and it seems to work.
So I found an AI company that also promises secrecy and is in a EU jurisdiction- if anything weird happens, they're on the hook. I could conceivably vibe-sue them in Ireland using their own inference- that was poetic enough for me, so I went for tensorx.
So I put everything together: mbsync fetches all my mail into ~/Maildir and notmuch allows it to be searched. I used my trusty 3code harness to hook up tensorx without getting lap burn from the session, and wrote a single AGENTS.md in a tax directory instructing 3code to collect all conceivable private and business expenses from my emails as well as all income invoices and put it into CSV according to viking docs.
And that was it. After this, filing taxes looks like this
# once a year
viking euer
viking est
viking ust -s gewerbe
viking est -s freiberuf
# quarterly
viking ustva
You can also dry run them. The nicest part- if it worked, you just get 0 back as exit code. No noise. No government speak. Aaaah. So they still get my money but it was over fast enough I could blink and kind of ignore it, which is good enough for me, and I did it without having to get yet another subscription (except tensorx but that's use only and I use it for lots of stuff).
*Oriinally published on the [Nim Forum](