ディスカッション (11件)
micasaは、家に関するあらゆる情報をターミナルUI(TUI)で管理できるツールです。データはすべて単一のSQLiteファイルに保存。クラウドなし、アカウントなし、サブスクも不要。バックアップは cp コマンドでコピーするだけで完了します。
メモアプリのどこに書いたか忘れたり、「後でやろう」と思ってそのまま忘れてしまう……そんな状況に疲れ果ててこれを作りました。「食洗機のフィルターを掃除するのはいつ?」「裏庭の改修にかかる見積もりで一番安かったのは?」「壁の裏にカビを見つけたから早急に対応しなきゃ」といった、家の維持管理にまつわる雑多な情報を追いかけるためのツールです。
また、micasaを作ったもう一つの理由は、AIだけでコードをどこまで書けるかという「低リスクな個人プロジェクト」に挑戦したかったからです。私はコードをレビューしてマージボタンを押すだけで、プログラミングの99%はAIエージェントが行いました。
特におすすめしたいポイントは以下の通りです:
- VimスタイルのモーダルUI: ブラウズ用のNavモードと変更用のEditモード。マルチカラムソート、カラムへのファジージャンプ、行の固定・フィルタリング、不要なカラムの非表示、関連レコードのドリルダウン(プロジェクトの見積もり一覧など)が可能です。デザインの精神や選択肢の多くはVisiDataから着想を得ています(VisiDataも素晴らしいのでぜひチェックしてみてください)。
- ローカルLLMチャット: 正直なところギミック(お遊び)ですが、「で、AI機能はあるの?」という最近ありがちな質問への先回りとして実装しました。これはオプション機能なので、無視してもOK。オフの状態でもすべての機能が動作します。
- 単一ファイルのSQLiteアーキテクチャ: マニュアル、領収書、写真などの添付ファイルも、同じSQLiteデータベース内にBLOBとして保存されます。1つのファイルがアプリの全状態を表します。スケールしないと思うかもしれませんが、その通りです。ただ、管理はめちゃくちゃ楽ですよ。
- Pure Go、ゼロCGO: TUIにはCharmbracelet、データベースにはGORM + go-sqliteを採用。Charmを使うと非常に綺麗なTUIが作れますね。今回初めて使いました。
以下のコマンドでサンプルデータと一緒に試せます:
go install github.com/cpcloud/micasa/cmd/micasa@latest && micasa --demo
もしあなたが正気でないなら、micasa --demo --years 1000 を実行して1000年分のデモデータを生成することも可能です。そんなに長く持つ家があるかは分かりませんが、まあ、お好みでどうぞ。
「ホームマネージャー」っていうカテゴリがもうすぐ流行ると思うし、そうなってほしいな。実用的に考えて、家みたいな大きな資産を管理するのに画像・テキスト・音声AIを使わない手はないでしょ。ただ、まだ一般向けの使いやすいインターフェースがないだけ。マニュアルや保険証券を全部スキャンして、地域の条例も全部読み込むことは可能だし、家の中を動画で撮ってセマンティックセグメンテーションされたGsplat(持ち物をほぼ網羅したもの)に変換することだってできる。外向きのカメラを全部センサーフュージョンすることも可能だ。OpenClawみたいなエージェントを使えば、在庫管理やセキュリティ、最適化とか、これらをどう活用するか決めてくれるしね。
これを考えると、Home AssistantのTUIがあったら最高だろうな。Home Assistantは制御とか連携の細かい部分はすごく良くできてるんだけど、UIがJavaScriptの塊でめちゃくちゃ重いんだよね。そのせいで、残念ながら古いタブレットだと全然まともに動かないんだ。
「ファイルはSQLiteデータベースの中にBLOBとして保存されるから、cp micasa.db backup.db を実行するだけで全部バックアップできる。サイドカーファイルもなし」だって。SQLite、マジで最高。とにかく、このプロジェクト全体が素晴らしく見えるよ。早く試してみたい(で、最後にタイヤを交換したのがいつだったか記録したり…待てよ、それもできるのか!?)。
こういうアプリの多くって、単なるスプレッドシートでもいい気がするんだよね。Pythonが動くGristみたいな「スマートな」スプレッドシートとか。僕の考えすぎかな?
レビュー欄にユーモアのセンスがあるやつがいるな。「3週間デモデータを使っています。家は持っていません。―― 家主志望より」
機能リストにはなかったけど、cronジョブとして動かしてリマインドメールを送れるようになるといいかも。最近は、キャリアにもよるけど電話番号@vztext.comみたいなメールアドレスがスマホに紐づいてるから、家事のタスクとかを自分にSMSで送れるしね。あるいは、データをJSONで吐き出せるようにして、他のメール送信ツールで読み込めるようにするのも良さそう。SQLiteの「-json」オプションもあるけど、スキーマが固定されてるか分からないし。自分は10年以上Perlスクリプトでこういうリマインドを管理してるけど、めちゃくちゃ便利だよ。このプロジェクトみたいに綺麗なUIにしたりDBを裏に持たせたりはしてないけどね。
これ、いい感じだね。自分はほぼ何でもorg-modeでやってて、そこにも同じような機能は全部あると思うけど、サクサク動くUIがあると実際に作業するモチベーションが上がるんだよね。これはやる気が出そう。唯一の異論はSQLiteを使ってる点かな。自分は必要に応じて手で編集できるシンプルな(構造化された)テキストファイル派なんだ。今のコンピュータなら、DBに頼らなくてもテキストファイルだけで結合やクエリ、集計なんて余裕でできるし。個人的には、こういうファイル構造の方が非公式な方法で簡単にいじれるから安心するんだよね。
これ最高!ユーモアのセンスも好き。早速ダウンロードしてデータを入れ始めたよ。ちょっとしたフィードバックだけど、エディタを開くときは $VISUAL を使ってほしいな。 Ctrl+e を押したら、もう何年も使ってないnanoが開いちゃった。追記:あ、 $EDITOR を使ってるんだね。単に自分の設定が漏れてただけだった。素晴らしい!これぞShow HNって感じのプロジェクトだね。
これ、すごくいい。ちょっと哲学的な気分になった。これってExcelのテンプレートというか、「ドメインモデル」のテンプレートみたいなもんじゃない?それをTUIで綺麗に見せて、基本的なCRUDワークフローを動かしてるっていう。ほとんどのSaaS企業も結局はそれなんだよね。1) 厳選されたドメインモデル(クラウドDB保存)、2) テーブルに対してほぼ生のCRUD操作をさせるUI、3) その下で複数のCRUD呼び出しを行う特定のワークフロー。多くのSaaSアプリはMicasaみたいなシンプルなExcelやドメインモデルのテンプレートで済んだはず。でも、リレーショナルDBの上の「完璧なUI」の正解はまだ見つかってない気がする。Excelは生のCRUDはいいけど、自由度が高すぎるしモデル自体をいじれちゃうから一般ユーザーには厳しい。TUIは制約があっていいしショートカットも便利だけど、非エンジニアにはハードルが高いし、高度なワークフローのUXを作るのが難しい。Web UIは誰でも使えるけど、毎回見た目も使い勝手も違うし、生のCRUDをやろうとするとグリッドライブラリとの妥協になっちゃう。
これと同じようなセルフホストできるWebアプリってあるかな?NetboxとかFireflyみたいだけど、家専用のやつ。