Show HN: Micasa – track your house from the terminal
9 hours ago (micasa.dev)
micasa is a terminal UI that helps you track home stuff, in a single SQLite file. No cloud, no account, no subscription. Backup with cp.
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.
This is quite cool. Makes me philosophical: isn't it odd, that this is like an Excel template? Like a "domain model" template? In this case, presented nicely in a TUI that makes basic CRUD workflows work.
Most SaaS companies are just that: 1) Curated domain model (stored in their cloud db) 2) Some way for users do to almost raw CRUD on the tables 3) Curated high-level domain specific workflows that do n CRUD calls underneath
So many of these SaaS apps could have been a simple Excel / domain model template like Micasa.
But it seems like we haven't "cracked" the perfect UI on top of relational DBs.
Excel: Good: raw CRUD. Bad: too many degrees of freedom + the possibility to edit the domain model itself. That's too much for most users.
TUI: Good: raw CRUD with some guardrails, limited possibility to adjust the domain model / not by accident. Keyboard shortcuts, for professionals. Bad: inaccessible for non-tech end users + hard to build good UX for high-level domain specific workflows.
Full Web UI: Good: accessible for all. Great for high-level domain-specific workflows. Bad: looks and works different every time. Raw CRUD possible, but always a compromise with editable data grid libraries.
There was once a time when tools like Microsoft Access and FileMaker Pro were common. These were a database and custom GUI designed using a drag and drop editor. I don't know whether these apps ever had network server capability or if they were always offline or why they died out. It was a bit before my time
FileMarker Pro had a dedicated server product (FileMaker Server) that you could use for multi-user access. Claris still sells it: https://www.claris.com/filemaker/
Microsoft Access was strictly file based. You could drop the .mdb/.accdb file on a SMB share and it would support basic concurrency via lock files. However, you could also swap out the internal database engine (Jet) with anything else via ODBC, so your Access database could connect to a remote Microsoft SQL Server instance - or even MySQL/Postgres.
Back in high school, I even wired up an Access database to give a graphical frontend to an accounting app running on an IBM AS/400 mainframe. ODBC made it easy, and Access itself didn't really care where the data lived.
I wonder what the state of workflow engines is these days. Back in the (distant, distant) past, everything seemed to use Lotus Notes. Today, there are oodles of workflow engines of all shapes and sizes, but asides from domain-specific stuff like Salesforce, I hardly hear anyone mention them.
1 reply →
I've always stubbornly bemoaned how everyone seems to love to work in spreadsheets. Undeniably the world's power-tool.
I've never liked them, never learned to work with them, and instead spent 20 years learning to program and make my own db-backed crud interfaces.
Your points are spot on. But I'd like to defend a sliver of my stubbornness about it all; a product built for a specific use or domain exports the _education_ and information architecture of that domain. Sure it's all rows and columns in a db, and a spreadsheet is just that exposed to the user, but a "product" and its creator/company gets to design and prescribe a learning experience. And I think that's the magic and the value. That's what I'm holding onto!
Someone has a sense of humor in the reviews section:
"I’ve been using the demo data for three weeks. I don’t own a house. — Aspiring Homeowner"
I didn't see that review in the 4 shown in that section until I refreshed the page... there are some good ones in there, including a Hacker News shoutout :D
I think/hope the whole "home manager" category is going to take off soon.
On a cost basis, it no longer makes sense--practically--not to use visual/text/audio intelligence to manage such a large asset. We just don't have the user-friendly mass-market interfaces for it just yet.
It's possible to scan every manual, every insurance policy, ingest every local bylaw. It's possible to take a video of your home and transform it into a semantically segmented Gsplat of [nearly] everything you own. It's possible to do sensor fusion of all the outward facing cameras from your home. And obviously agents like OpenClaw can decide what to do with all of this (inventory, security, optimization, etc).
I've been working on something like this the last few months specifically around service quote analysis (repairs, construction, hvac, auto, etc.) and it's really cool. I think LLM analysis is the way to go because the amount of complexity is absolutely staggering - just to start the difference in quality and information available on a quote is drastically different between vendors within the SAME vertical. Then to do actual do analysis on local laws, the details of your property (not just photos/videos, but zoning and lot details), vendor analysis, etc.
On top of it all, the most important thing to consider is intent -> An emergency plumbing visit is often very different than a proactive upgrade.
edit: spelling
how do you handle the LLM hallucinations in analysis? I like it for data extraction but i never trust it to analyze anything
1 reply →
We've been building https://homechart.app for years (without GenAI...) and folks just don't realize that home managers exist as an app. They're too used to single purpose solutions, so they don't think to look for more comprehensive options.
There's also the inherit struggle of being everything for everyone with an app like this, and focusing on features 80% of your users want and leaving the other 20% niche features on the backlog upsets people, mostly the power users.
I checked out HomeChart, and boy howdy it feels like its doing way too much.
4 replies →
It's just hard sell vs the free of just having a spreadsheet
> It's possible to do sensor fusion of all the outward facing cameras from your home
Is that legal though? I'm guessing it the US it might be, given the amount of cameras of public places you can see in various communities, but wonder how common that is. Where I live (Spain) it's not legal to just stick a camera on your house and record public places, you need to put the camera in a way so you're only filming your private property or similar.
The US gives you no expectation of privacy in public places and private property is generally do what you want. It gets murkier if your cameras are pointed at other private property (your neighbors).
Not a legal expert just what I’ve heard.
1 reply →
Grocey
I call this the "Home Resource Planner"
Bricks are there (Home assistant, Frigate, Pihole,...)
[dead]
[flagged]
> Backup with cp.
cp is not a method to backup a SQLite file unless you can guarantee there are zero transactions in progress. See https://sqlite.org/howtocorrupt.html#_backup_or_restore_whil... for safe methods and consider switching your examples to use one of those.
SQLite is just so cool. Anyway, this whole project looks amazing. I can't wait to kick tires (and then track when I last changed my tires... wait, can it do that?!)
One of my first thoughts after getting a working prototype was: "Doesn't the car battery need to be replaced?"
So, yeah. This would obviously be called micarro.
And for doctors appointments... micuerpo!
I feel like a lot of these types of apps could just be spreadsheets. Maybe a "smart" spreadsheet like Grist[0] executing Python code. Am I off-base there?
[0] https://github.com/gristlabs/grist-core
Probably right. My brain is probably stuck in old-man spreadsheet land and I did not explore any new horizons that might have obviated micasa. That said, I also didn't want to invest a bunch of time in developing a domain specific app using spreadsheets as the API, I wanted to invest a bunch of time developing a domain specific app using AI. Might end up being a choice I regret!
That's all fair. It is a cool piece of work nonetheless.
For example I am thinking, what if I wanted to hook up my micasa instance to some other arbitrary self-hosted service? If it's an App that means bespoke code, with a spreadsheet stack it is trivial.
I agree. While I really like the idea of being able to query some of this data, it's another system to maintain. I have a system where I use a calendar, physical folder, and notes/folder in the cloud. Call me lazy.
I will say that I am slowly becoming a convert to 'talk to data' approach. Still, it is not without its flaws. At the end of the day, it still requires the user to update stuff and, from experience, this is where I fail and render all those project apps useless..for me specifically.
It sucks, because it sounds like what I really need is for someone to track it for me so that i can just review it if needed.
Is there such a self hostable app available as a website? Kinda like Netbox / firefly but for your house?
This is awesome, love the sense of humor and just downloaded it and started adding data.
Only small piece of feedback is that I would use `$VISUAL` when opening the editor. When I tried to use `Ctrl+e` it opened nano which I haven't used in ages.
Edit: Oh looks like you use `$EDITOR` - I just didn't have that set. Awesome!
These are the projects which make me love Show HN!
Thanks for the feedback!
Did you hit this in the Docs open flow?
micasa will call xdg-open (linux)/open (mac)/cmd (windows) when opening a document, but there's nothing that's explicitly opening a text editor.
Sorry for the late reply, this was for when you're adding a renovation for instance and there is a section for "notes" - you can hit `ctrl+e` and it will open in an editor.
Looks like it doesn't register `$VISUAL` but does use `$EDITOR` not sure if that is a `xdg-open` behavior though.
Thinking of this it would be amazing to have a TUI for home assistant. It's already so good at doing all the nuts and bolts of control and interacting with everything. But its UI is super heavy loaded JavaScript. It doesn't run well on old tablets either for this reason, sadly.
My overall philosophy for (my quite extensive) Home Assistant setup is “amy time a human interacts with the HA UI in any way whatsoever, that is a failure.” I don’t want dashboards, I don’t want a user interface at ALL other than for setting up new automation. The point of HA for me is the house should feel like the correct things happen by magic (and should be essentially unobtrusive and natural).
Oh that's not my philosophy at all. I don't like too much automation because I'm very fussy as to what I want at one moment. It all depends on my mood which home assistant doesn't know. Sometimes when I enter a room I want the lights on, other times I don't, stuff like that. Like when the curtains are open and I'm walking around half naked. And sometimes I just like the dark and sometimes I need bright lights. Sometimes I need heat and sometimes sitting in 16 degrees (C) is totally fine. Yeah I'm weird I know :)
Also I'm really chaotic in terms of schedule. My mood and behaviour changes by the day.
I use it more as a monitoring and control tool.
Not saying your way is bad, it's more as HA is intended. But I'm just saying it won't work for me.
2 replies →
I've honestly never explored HA. Is there a world where HA obviates micasa. That seems like a win, at least in terms of not having yet another piece of software duplicating an existing thing.
There's a CLI [1], LLM API [2], and REST API [3].
[1]: https://github.com/home-assistant-ecosystem/home-assistant-c...
[2]: https://developers.home-assistant.io/docs/core/llm/
[3]: https://developers.home-assistant.io/docs/api/rest/
I would love to have a TUI for Home Assistant!
I didn't see it on the feature list, but it might be nice to allow it to run as a cron job and send email for reminders. These days, most mobile phones have an associated email like your-phone-number@vztext.com (depending on carrier), so you can send yourself text messages about chores and whatnot.
Or, perhaps just as good, have a way for it to dump out data as json, and could be consumed by some other send-the-email tool. There is the "-json" sqlite option, of course, but I'm not sure if your schema is meant to be stable.
I have a perl script for reminders like this that has been super handy over the 10+ years I've been using it. Never bit the bullet to put it in a nice UI or have a backing DB like this project, though.
Heck yeah! Love the VisiData shoutout. Echoing other people's desire for a web UI, mostly so I don't have to be the sole Maintainer of the Truth as the only resident household technomancer.
EDIT: alternatively, exposing the data/functionality via MCP or similar would allow me to connect this to an agent using Home Assistant Voice, so anybody in the house could ask for changes or add new information.
This makes me want to use visidata for my databases.
Funny enough, Saul and I recently hacked on getting visidata's Ibis integration updated, so you can use visidata for poking around databases of any size, really. You might like that, but also visidata has non-ibis support for SQLite I believe.
This is super interesting. I do have a GitHub issue for LLM-powered data entry: "Add a landscaping project to do the backyard. Still ideating, thinking a budget of $40k."
I think this is neat. I use org-mode for pretty much everything, which has all of these features I think, but sometimes there is nothing more motivating than a quick responsive UI to actually do something. This looks motivational.
My only pushback is using sqlite. I am a big fan of just using simple (structured) text files that can be edited by hand when needed. Your computer is more than capable of doing all the joining/querying/aggregating/whatever with the text file itself rather than relying on a database. I personally find these sort of file structures comforting as it means they can be easily modified in unsupported ways.
Looks good - I like the TUI a lot. The only thing with that type of interface is that there is no chance my wife would use it via the terminal. It would be cool if there was a web UI as well - so other members of the household could access and use it.
This.
If I am the only one who can use it and only from one computer, it would be entirely useless for my needs. I have several computers and also family members who would need access to that data. A Google Docs spreadsheet would be a better tool for my specific needs I think.
I think the same. Why overcomplicate and just use some online Spreadsheet like from Google Docs. The same or even less effort.
> When do I need to clean the dishwasher filter?
Dishwashers have filters??!?
Many have removable filters that you're supposed to clean periodically. If there's nothing obviously removable in yours then it might have a "self-cleaning" system that would be harder to take out and clean yourself.
Wait until I tell you about your water heater's sacrificial anode. NOBODY replaces those.
yes, and the answer is every so often
They do in Europe. They have water softeners too that you have to fill with salt. Don't believe it's the case around the world.
More than you ever wanted to know about dishwashers: https://www.youtube.com/watch?v=_rBO8neWw04
Just want to say, I appreciate your work on Ibis. I’ve been looking into building sort of a dbt-esque alternative on top of it and noticed how involved you’ve been with its development. I think it’s a cool piece of tech that deserves more attention.
Thanks! Curious to see what you build with it.
Thank you for the `nix app`!
Being able to launch it with:
Is super convenient.
Actually we could go further and serve `micasa` via ssh:
Then we could put this in a nixosModule in your flake.nix. Would you be interested in a PR which does this?
I built something somewhat similar to this that's web app based (honeydew) but it's much more focused on DIY and doesn't include any of the quote/contractor stuff. It's absolutely focused on powering through a huge pile of todos from a home inspection with dependency tracking as well as remembering stuff (when was the last time you empty the washing machine filter).
It practice it alternates between annoying thing I dismiss the notifications from or use obsessively. Doesn't seem to be much in between
Do you have a link to the app? There's way too many hits searching for honeydew online...
The hallucination-in-analysis problem is real and often undersold. Pattern that works well: use the LLM only to structure already-extracted data (parse fields, normalize formats), then apply deterministic logic for anything numerical. That way the LLM is doing classification/extraction where it's reliable, and you're not trusting it to compute or compare values where it isn't.
Praise be to projects that use xdg paths before posting it to hn.
It think this could be extended to other areas, like car (services, new lease etc), health (dentist, doctor etc), vacations, tax, banking... Basically a personal assistant like app that handles "life".
Yep, I have a few open issues about this. Cars and tools were next on my list.
This looks awesome but I think I might still prefer to have an agent make these changes. Not sure though.
In general, I love the juxtaposition of the most advanced computer technology ever (AI) causing an explosion in one of the OLDEST computer technology we've ever had (terminals).
I spend most of my day in a terminal now. It's just funny.
> This looks awesome but I think I might still prefer to have an agent make these changes. Not sure though.
Not entirely sure what you mean here, but the next big feature for micasa is an autopopulation pipeline. Upload a quote PDF and populate the project, quote, and vendor tables. It might not be viable ultimately, but I would love to see how far I can get.
Overkill? Definitely.
Yep that's exactly what I'm talking about. I don't think it's overkill. It feels very natural and filling out forms feels archaic to me (unless it's a "edit this quickly" where that's almost always faster than asking an agent.)
So I've been building a full piece of software to manage my small business. And it looks like traditional software (forms, tables, etc). But every single thing also has an MCP tool.
So then I find myself just talking to the agent especially as an input mechanism way more than clicking around and editing a form.
I'm just saying, as an input method, I think forms, TUIs, etc will be good as a backup. Over time, as you've outlined, we'd just say "here's a PDF, figure it out" and the agent just inputs the right values into the right fields.
That's how I've approached my run-my-business app. I have models/tables for clients, purchase orders, invoices, support tasks, everything. But my interaction is more like "Add me to all the active projects, set my cost rate to __" and it'll run 15 MCP calls and put the data where it belongs.
Or I'll ask "what invoices are way overdue?" and it'll run the MCP calls to get it, even though I have pretty dashboards.
Glad to see you're already thinking of it.
Wow! This is so cool. I really need to get my hands on TUI. It seems to be a growing trend. Maybe it's a stupid question, because I know about family members that have never opened a terminal - can a TUI app bundled with an icon to simply click and start it?
> can a TUI app bundled with an icon to simply click and start it?
Almost certainly. I personally don't use clicky things to the extent that I am able to avoid them, so I can't describe the specific mechanism or name any of the nouns/tools involved, but I'm pretty sure this exists.
You just create a shortcut to the binary in the dock or desktop on macos.
This is pretty cool and useful. I actually might adapt it to aid me in tracking projects around my dirt bike, similar tracking events.
Pretty slick! And I really enjoyed the interactive, destructible house at the top :-)
Very cool! When on docs column, and pressing e to edit, it seems to just take you to edit the entire project, with no way to edit docs (which I am not sure what that even is supposed to be, I assume a way to attach files?).
This UX was a bit iffy for me, but I thought I'd experiment with it and decided to go with it.
When you edit an ID column, it opens a form editor to edit the entire row at once.
The thinking was to make all columns editable _in some way_, but ID columns are autogenerated and thus not designed to be directly manipulated.
I thought: since the ID represents a unique entity, in this case document, then it made some sense to make editing that editing the whole row.
That said, this is a bug even with the explanation I just gave: editing on the ID column of Docs doesn't show all the row's data in the form. Will fix that shortly.
This looks so much better than most project/product management tools out there.
In my wildest dreams, your project would turn into a jira that devs love.
This is basically what I want, but with a UI that non-techie spouse wouldn’t mind using. Though that doesn't seem to be your intended direction, which is fair.
We use Apple Reminders for grocery lists and Paprika for recipes, but something a little more organized than just a shared note for these sorts of things would be great.
I will probably check it out for myself though.
Super cool. Installed. It would be great if the f and b keys for moving between navigation elements circle back to the first element once reached its end.
Heh, I actually turned that off because I kept getting confused about where I was. Perhaps there's a better UX there, or better styling that would make me less confused and keep the nav wrapping.
I love TUIs and I love the way this looks and the concept behind it, but often I'm doing household stuff on my phone because I'm walking around checking on things or just taking photos of things.
Yes, one of the other comments alluded to this as well. I am also in this boat, so other than bizarroland LLM ingest stuff, I'll probably work on this next. Having never written a mobile app, I'm sure it'll be fine.
I created a basic site to do some similar things as well: https://homemaintlist.com/
Need to revisit it and update it based on a lot of feedback I've received.
I definitely waffled a bit on multi-property support, but decided against it for initial launch. Multi-property avid terminal users seems even more niche!
> Not sure what house would last that long
Not necessarily houses, but there are some old buildings around almost everywhere: https://en.wikipedia.org/wiki/List_of_oldest_extant_building...
This is looking pretty good. Going to run some sample data runs + might try this out.
Why is the text in cells truncated?
Here it an important th… |
Why?
Looks nice, I like this TUI aesthetic, but I’m not sure I could use it on a daily basis. A self-hosted app or phone app might be more convenient
100% on the phone app. Maybe the web app is the phone app? Dunno. Being able to enter information as close to receiving as possible seems key actually. I'll probably poke on this soon.
It could be a native mobile app, but in that case you’d need to think about platforms, the App Store, and so on.
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 love the logo, go ahead and click it!
Pretty cool
mise use -g github:cpcloud/micasa
and just start typing. I wish it had metric units and was translated, though!
Nice. I would definitely consider making it locale sensitive.
Why not keep everything in a simple text file?
I'm not sure if you're asking whether micasa should use a text file as its format, or if you're suggesting that a text file can be a substitute for micasa.
The latter.
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.
1 reply →
That is a beautiful TUI!
Looks really cool. Agree on comments related to TUI. Maybe a simple interface running locally would be better.
TUIs have gotten so good lately. I love the design on this
isn't AI supposed to take care of all these home projects for me? ;)
I do like it. I just hope I don't have that many things that I have to fix in my house that I need a DB to track them.
Is there even a Wichita, Arkansas?
You can also run directly:
go run github.com/cpcloud/micasa/cmd/micasa@latest
Any ideas why Claude forces TUI application development?
Maybe it's that TUIs feel manageable with an agent. They can be well scoped without a ton of effort, which at least for me makes me a tiny bit more comfortable letting them write code.
It feels like something to do with front-end development limitations. I noticed a wave of TUI applications, all written by Claude from the initial commit.
1 reply →
It's pretty good at building TUIs. Although it's not bad at Swift/macOS either. But really I think the problem is that we don't have a great solution right now for cross platform native UIs that isn't a WebView (or entire Chrome browser), which doesn't feel very native. But every platform has a pretty good terminal now, even Windows.
Recently I asked Claude to build a communication tool and TUI was its first proposal. When I had a similar request with ChatGPT previously, it proposed node.js, I assume because there are more examples in its training data.
The pairing of Claude and TUI doesn't seem like a coincidence to me, perhaps there are fewer moving parts that are easy to coordinate?
It’s easy then run a web server for a web UI, but it still looks better than a regular CLI
This looks incredible
I want MiBoat ;)
That was exactly my first thought. Could I mod this use with boats. I already have some spreadsheets for tracking engine maintenance, etc, but this looks really cool.
mibarco, I dig it. Don't have a boat, but I can imagine they're a pile of dreams, shattered and otherwise.
Your quotes are great.
I wouldn’t want to use a terminal-only tool with no affordances for cloud sync for home management, something that inherently is likely to involve all members of a household who are likely not all proficient with terminal usage. You should ask your LLM to make something that can run as a home server and have different clients.
I also personally wouldn’t trust the database of all my important home info to a vibe-coded program.
Reasonable stance.
The same way that Gen Z wants shitty blurry photos of everything, I want more terminal UIs for everyday life. AI isn't going to give us beautiful native swift apps, it just gives us more garbage electron ones. So TUI would be a better aspiration I guess.
This is dope.
The testimonials cracked me up. I'm still managing my house maintenance on a spreadsheet like an absolute barbarian. I mean I was, until now. Does it come in Catpuccin?
I hadn't considered theming it differently, though in theory it should be adaptive to light versus dark terminals. I only use dark terminals and I couldn't be bothered to test that before there were any users, so if it doesn't work, I will happily task it out to an agent!
Now I kind of want custom themes...
This is probably the most beautiful homepage + docs combo I’ve ever seen. The copy is awesome too. It feels human.
Great work.
Cool! Although I'd rather use Obsidian with the Tables stuff, so I get everything in my UI with photos, and I can share with mobile
I'm building a Home vault like this currently. With the new obsidian cli, you can do a lot more with letting an agent manage things and update dashboards, etc. for you.
Wow, this took me BACK!
My first computer was a 486, I was running MS-DOS (iirc) and there was an app that did just that with a very similar (Text)UI, anyone else used it/remembers the name?
If you want a more powerful to-do list, look into IBM Maximo. It's the ultimate end all be all of todoMVCs.
why not just use a spreadsheet?
[dead]
[flagged]