Posted by cpcloud 11 hours ago
I built it because I was tired of losing track of everything in notes apps, and "I'll remember that"s. When do I need to clean the dishwasher filter? What's the best quote for a complete overhaul of the backyard. Oops, found some mold behind the trim, need to address that ASAP. That sort of stuff.
Another reason I made micasa was to build a (hopefully useful) low-stakes personal project where the code was written entirely by AI. I still review the code and click the merge button, but 99% of the programming was done with an agent.
Here are some things I think make it worth checking out:
- Vim-style modal UI. Nav mode to browse, edit mode to change. Multicolumn sort, fuzzy-jump to columns, pin-and-filter rows, hide columns you don't need, drill into related records (like quotes for a project). Much of the spirit of the design and some of the actual design choices is and are inspired by VisiData. You should check that out too. - Local LLM chat. Definitely a gimmick, but I am trying preempt "Yeah, but does it AI?"-style conversations. This is an optional feature and you can simply pretend it doesn't exist. All features work without it. - Single-file SQLite-based architecture. Document attachments (manuals, receipts, photos) are stored as BLOBs in the same SQLite database. One file is the whole app state. If you think this won't scale, you're right. It's pretty damn easy to work with though. - Pure Go, zero CGO. Built on Charmbracelet for the TUI and GORM + go-sqlite for the database. Charm makes pretty nice TUIs, and this was my first time using it.
Try it with sample data: go install github.com/cpcloud/micasa/cmd/micasa@latest && micasa --demo
If you're insane you can also run micasa --demo --years 1000 to generate 1000 years worth of demo data. Not sure what house would last that long, but hey, you do you.
Need to revisit it and update it based on a lot of feedback I've received.
Not necessarily houses, but there are some old buildings around almost everywhere: https://en.wikipedia.org/wiki/List_of_oldest_extant_building...
A progressive web app could be a nice alternative: just add the website icon to your phone, and you can open it in seconds.
The app could be self-hosted on a home server, and solutions like Tailscale would let you easily access it outside the house as well. A big plus is that you can open it on all your devices and have a unified database across them.
With a web app, you could even keep the TUI aesthetic - just style it like a CLI interface.
I do things in my house too infrequently that I don't want to have to re-learn the UI of a tool again and again.
But maybe I'm not the target audience.
You might actually be able to get away with less structure and just dumps thoughts and ideas, statuses, and documents into $AI and have it generate ad-hoc reports.
In which case, a text file might be the right interface.
Kind of a non-answer, I realize.
I suppose the answer is: because I had a relatively specific idea of what I wanted to build and I didn't consider not building it.
mise use -g github:cpcloud/micasa
and just start typing. I wish it had metric units and was translated, though!