Kong parsed my arguments for four months. It worked fine. It also didn’t generate shell completions, so micasa had none. And --help was plain monochrome text next to a TUI with a color palette; the one screen that looked like it belonged to a different application. Kong out, Cobra in # #785 replaces Kong with Cobra. The main reason was completions; Kong doesn’t generate them, so micasa…
I shipped a breaking change last week. On purpose. The config system had a shared [llm] section that both the chat and extraction pipelines inherited from. If you set llm.model , chat used it. Extraction also used it, unless you set llm.extraction.model , which overrode the base. Unless you also set the environment variable, which overrode the override. I wrote this. I tested it. It passed. It was…
The extraction pipeline shipped a week ago with a hand-rolled OpenAI-compatible client. Naturally, it only worked with Ollama. It might sound weird, but that was intentional: local-first, no requirement to send the details of your house to our AI overlords. After a couple weeks of using various models locally, I learned (perhaps the hard way), that local models just cannot hold a candle to the…
Last week I was staring at a plumbing invoice; $287 for a garbage disposal install, which is apparently what it costs to have a man lie under your sink for forty minutes; and I realized I was about to do the thing I built this app to avoid: transcribing data by hand. Open the vendor form, type “Ace Plumbing.” Open the quote form, type “$287.” Open the maintenance form, type…
I built micasa because my home maintenance system was three binders held together with duct tape and prayer. You know how it goes. The dishwasher starts making a sound that’s either nothing or a $400 problem, and you think is that still under warranty? The warranty card is in a drawer. Which drawer? The one with the batteries, the takeout menus, a mystery Allen wrench, and thirty other…