サラリーマンをしながら、趣味でパソコンをいじっている。エンジニアではないが、このブログでは、そのなかでやったことを起きた順番のまま記録していきたい。「私にもできるかもしれない」と思っていただけたら嬉しい。

その第一歩として、そもそもの始まりの話から書く。

きっかけ

中島聡さんのニュースレターで「MulmoClaude」というものを知った。ChatGPTやClaudeのようなAIアシスタントを、SaaSとしてではなく自分のマシン上でセルフホストできるOSSプロジェクトで、会話履歴や記憶させた情報が全部ローカルのファイルとして自分の手元に残る、という点に惹かれた。試しに自分のMacBookに導入してみることにした。環境は Node.js v24.18.0、git 2.50.1、Claude Code CLI v2.1.220。

最初のつまずき: ERR_MODULE_NOT_FOUND

導入方法はいくつかあり、最初は receptron/mulmoclaudegit clone する開発者向けの方法を選んだ。yarn install して yarn dev で起動しようとしたところ、ERR_MODULE_NOT_FOUND のビルドエラーで起動しなかった。原因は、パッケージ群のビルドが済んでいない状態で dev を起動しようとしていたこと。yarn build:packages:dev を先に実行してからだと、あっさり起動した。同じエラーで詰まっている人がいたら、まずこの順番を疑ってみてほしい。

動くようにはなったが、調べると公式が推奨しているのは npx mulmoclaude@latest というもっとシンプルな方法だった。ビルドの手間もgit cloneの管理も不要で、同じ日のうちに乗り換えた。ポートも git clone/yarn dev 版の 5173 から、npx版の 3001 に変わった。今もこのnpx版をベースに使い続けている。最初からこちらを選んでいれば、ERR_MODULE_NOT_FOUND にも遭遇しなかったはずだ。

実際に使える環境に仕上げる

動くようになってからは、日常的に使えるように何点か手を加えた。まず、パソコンの前にいないときにも使いたかったので、Telegramのbot(taiki_mulmoclaude_bot)をBotFather経由で作成し、公式のTelegram Bot APIの手順どおりに連携させた。外出先からでもチャットできるのは地味に便利だった。

あわせて、それまで公式のClaudeアプリで会話してきた蓄積(仕事の話、住んでいる場所、興味関心、日々の記録など)を、この新しい環境の「記憶」(ローカルのMarkdownファイルとして蓄積される仕組み)として移行した。ゼロから育てるのではなく、これまでの会話の続きから始められたのは大きかった。

最後に、ローカル環境が壊れたら全部消える、というのは避けたかったので、早い段階でGitHubにprivateリポジトリを作り、git push による定期的な自動バックアップの仕組みを整えた。この習慣は今も続いていて、後々サーバー移行を決める安心材料にもなった。

ここまでで、パソコンの中にMulmoClaudeを構築し、Telegram経由でも使えて、データもGitHubで守られている状態になった。次は、これを常時稼働のクラウドサーバーへ引っ越した話に続く。