工場に同じ型の機械が三台並ぶと、誰かが札を付けます。一号機、二号機、三号機。
仕様書は一冊で足ります。同じ機械なので、設定値も手順も点検表も共通です。違うのは札だけです。それでも札が無いと、一号機で起きた不具合を二号機の記録に書いてしまったり、点検の終わった機械をもう一度点検したりします。
札が要るのは、機械が違うからではなく、人が見分けられないからです。だから仕様を分けるのではなく、札だけを分けます。
同じものを並べたときに変えるべき情報は、たいていそれくらい少ないものです。
三本とも同じ色
AI を並列で動かす方法は二つあります。git の機能で作業フォルダを増やすか、プロジェクトを丸ごと何本も取ってくるか。
前者は一件の作業ごとの使い捨てですが、後者は常設です。acme、acme2、acme3 と並べて、それぞれに常駐の AI を置く、という使い方をします。
MulmoTerminal はそのための画面で、一マスが一体の AI にあたります。無料で、オープンソースとして公開されています。マスに色を付けると見分けられるようになりますが、この三本は全部同じ色になります。
プロジェクトとしては同じなので、当然
設定ファイルはプロジェクトの中に置いてあります。取ってくれば、そのファイルも一緒に来ます。三本とも同じ設定を読みます。
当たり前ですが、困ります。九枚のマスのうち三枚が同じ顔をしているので、どの複製で作業していたかが分からなくなります。
同じ型の機械に札が無いのと同じ状態です。
違うべきなのは、見分けるための色だけ
ここが整理のポイントです。
プロジェクトとしては同じものなので、名前もモデルも配色の系統も同じでいい。違うべきなのは、格子で見分けるための色だけです。
仕様書は一冊で、札だけ三枚。
共有する設定と、この一本だけの設定を分ける
共有ファイルの隣に、もう一枚置けます。
// .mulmoterminal.json — プロジェクトの設定。
// 色も含めて単体で完結しているので、複製を1本しか持たない人はこれだけでよい。
// コミットして構わない
{
"name": "acme-web",
"theme": "nord",
"badgeColor": "#1b3479",
"headerColor": "#2d4ea9",
"headerTextColor": "#ffffff",
"orderPriority": 30
}
// .mulmoterminal.local.json — この複製だけ。.gitignore に入れる
{
"badgeColor": "#27b4a8",
"headerColor": "#4ed0c5",
"orderPriority": 65
}
共有側が単体で完結しているのが設計上の要点です。複製を一本しか持たない人は共有ファイルだけでよく、二枚目の存在を知る必要がありません。
規則は五つ
一つ目は、この複製の設定が勝つ、ただし項目ごとに、というところです。書いていない項目は共有ファイルの値のままです。上の例なら、名前と配色の系統と文字色は共有側から来ます。
二つ目は、項目ごと丸ごと置き換えて深く混ぜないこと。これは意図的で、一つの項目が一つの意図だからです。二つのファイルから組み立てないと分からない配色より、一か所で読み切れるほうが予測しやすい。
深く混ぜる作りだと、実際に効いている配色がどちらのファイルにも書いていない状態になります。そうなると、直そうとしたときに二枚を見比べながら組み立てることになって、調べようがありません。
三つ目は、検証が同じように効くこと。この複製の設定は、規則を迂回する手段ではありません。正しくない色は、共有ファイルに書いたときと同じように落とされます。
四つ目は、相対パスの意味も同じであること。アイコンや音のパスは、ファイルではなくフォルダを基準に解決されます。どちらに書いても、同じパスは同じ場所を指します。
五つ目は、どちらか片方だけでも動くこと。この複製の設定だけという形もあり得ますし、片方が壊れていてももう片方は生きたままです。
どちらを書き換えても、すぐ反映される
三本並べて色を決めるとき、これが無いと毎回タブを再読み込みします。
濃すぎた、もう少し薄く、を十回繰り返す作業なので、即反映かどうかで体験が変わります。
作業フォルダも、同じファイルを使う
作業用に切ったフォルダには、プロジェクトの設定のコピーが置かれます。その書き込み先が、この二枚目です。.gitignore に入っているので、git の状態を汚しません。
このファイルは二つの役目を兼ねています。手で書くときは、この複製だけの色。自動で書かれるときは、作業フォルダの色で、色相を少しずらしたものです。
どちらも共有設定の上に重なる、この一本だけのものなので同じ場所でよい、という整理です。
効いていないときの調べ方
設定の画面に、両方のパスと、この複製の設定が持っていった項目の一覧が出ます。
変えたのにマスが違うときの答えは、たいていこれです。共有側を編集したのに、この複製の設定が同じ項目を持っていた、という状況が一番多い。
二枚あることを忘れるのがこの仕組みの唯一の弱点なので、それを画面が言ってくれるのは助かります。
使ってみる
MulmoTerminal は、次の一行で立ち上がります。ターミナル(Windows なら PowerShell、Mac ならターミナル)を開いて、そのまま貼り付けます。
npx mulmoterminal@latest
ブラウザが開いて http://localhost:34567 が表示されれば成功です。インストールという作業はなく、合わなければ閉じるだけで終わります。止めるときは、打ったターミナルで Ctrl + C を押します。
動かない場合、足りないものは次の二つのどちらかです。
| 確かめ方 | 無ければ | |
|---|---|---|
| Node.js 22.12 以上 | node -v |
nodejs.org/ja/download の LTS。入れたらターミナルを閉じて開き直す |
| Claude Code | claude --version |
macOS は curl -fsSL https://claude.ai/install.sh | bash、Windows は irm https://claude.ai/install.ps1 | iex。そのあと claude でログイン |
Claude Code は、AI をターミナルから使うためのコマンドです。使うには Claude の有料プラン(Pro / Max / Team / Enterprise)か API のアカウントが必要で、無料プランには含まれていません。MulmoTerminal 自体は無料で、AI の使用量はその契約から引かれます。
先にやることが一つあります。そのプロジェクトの .gitignore に一行足します。
# .gitignore
.mulmoterminal.local.json
そのうえで、共有ファイルの隣に .mulmoterminal.local.json を置きます。
{
"badgeColor": "#27b4a8",
"headerColor": "#4ed0c5"
}
AI にファイルを書かせたときは即座に効きます。エディタで手で書いたときは、タブを再読み込みします。
ファイルは二枚に分けます。.mulmoterminal.json に名前と配色の系統と順位を書いて、これはコミットしてかまいません。.mulmoterminal.local.json には色だけを書いて、これは上の一行で git から無視されます。
その複製のマスだけ色が変わって、他の複製は共有ファイルの色のままなら成功です。
やめるときは、この二枚目のファイルを消せば共有ファイルの色に戻ります。
まとめ
同じ型の機械が三台並ぶと、人は号機の札を付けます。仕様書は一冊で足りて、違うべきなのは札だけです。
同じプロジェクトを三本取ってくると、設定も一緒に来るので三本が同じ色になります。変えるべきなのは、見分けるための色だけです。
共有ファイルの隣に一枚置くと、その一本だけの色を書けます。項目ごと丸ごと置き換えるのは、実際に効いている配色がどちらにも書いていない状態を避けるためです。
