町内会で、家の前に防犯の札を掛けることになりました。二十軒あります。
全部に新しく作るとお金も時間もかかります。ところが見て回ると、半分の家にはもう何かしら掛かっています。表札、犬のシール、電力会社の点検票、子ども会のプレート。
使えるものは使って、無い家にだけ新しく作る。すると二十軒の仕事が十軒になります。
全部に用意するのと、無いところにだけ足すのでは、同じ結果に見えて仕事の量が違います。すでに何が掛かっているかを見るのが、その差を作る一手です。
半年やらない仕事
ターミナルで動く AI を何体も並べて動かすとき、マスに色を付けると見分けられるようになります。MulmoTerminal はそのための画面で、一マスが一体の AI にあたります。無料で、オープンソースとして公開されています。
次に思うのは、ロゴが出ていたらもっと速いということです。文字を読む前に、絵で分かるので。
設定に一行書けば出ます。そこで手が止まります。プロジェクトが二十個あります。
二十回フォルダを開いて、ロゴのパスを調べて、一行書く。それをやる気になるまで、たぶん半年かかります。
たいていの場合、書かなくていい
MulmoTerminal では、設定していないフォルダには、そのプロジェクトがすでに持っているアイコンが出ます。
ウェブ関係のプロジェクトなら、ブラウザのタブに出る小さなアイコンがフォルダの中に入っています。それを探して使います。
二十個のうちウェブ系のものは、何もしなくてもアイコンが付きます。表札がもう掛かっている家です。
探す順序が、よくある順ではない
ここが面白いところです。探す順序はこうなっています。
まず public/favicon.svg、次に public/apple-touch-icon.png、次に public/favicon.png、次に public/favicon.ico、最後にアプリの設定ファイルに書かれた一番大きいアイコン。
この並びは、よくある順ではありません。小さく描いたときに崩れない順です。
マスのヘッダーに出るアイコンは小さいので、そのサイズで意味をなすかが唯一の基準になります。SVG が一番なのは、どのサイズでも崩れないからです。apple-touch-icon.png が二番なのは、iOS 用なので小さく見られる前提で作られているからです。favicon.ico が下なのは、古い形式で中身のサイズがまちまちだからです。
最後の段で、余白を持つ前提のアイコンを除外しているのも同じ理由です。それをそのまま小さく描くと、中身が小さすぎて何も見えません。
docs/logo.png は、あえて探さない
これも意図的です。docs/logo.png や assets/logo.* は探しません。
ロゴという語は、実は二つの別のものを指しています。README の先頭に置く横長のバナーと、favicon にする正方形のマークです。ファイル名では区別できません。
横長のバナーを十四ピクセル四方に押し込むと、ただの染みになります。だから favicon として置かれたものだけを信用する、という判断になっています。
自分のプロジェクトで横長でないロゴを使いたいなら、明示的に書きます。
{ "icon": "docs/logo.png" }
URL でも、画像を直接埋め込んでもかまいません。
出る場所が六か所ある
同じアイコンが、いろいろな場所に出ます。マスのヘッダー、拡大したときに横に出る一覧、下に並ぶサムネイル、起動前のフォルダのボタン、スマホの一覧、スマホの画面。
起動する前も、起動したあとも、パソコンでもスマホでも、同じ絵で見分けられます。
起動前のボタンに出るのが地味に効きます。起動する前にこのプロジェクトだと分かるので、パスを読み間違えて別のプロジェクトで起動するのが減ります。
切り方が二つあって、意味が違う
アイコンを出したくない場合もあります。
そのプロジェクトだけ出さないなら、プロジェクトの設定に書きます。作業フォルダにも引き継がれます。
全体で出さないなら、パソコン全体の設定か、設定画面のチェックボックスです。
使い分けの基準ははっきりしていて、挙動そのものが不要なら全体で切ります。全部のプロジェクトに "icon": false を書いて回るのは違います。二十軒に札を掛けて回るのと同じ間違いです。
書き間違えたら、何も出ない
一つ気づきにくい仕様があります。書き間違えたキーは、favicon に落ちません。
"icon": "logo.png" の指す先が無い場合、アイコンは出ません。これは意図的で、壊れた設定は壊れて見えるべきだからです。
ここで favicon に落ちると、設定が効いているのと、設定が壊れて別のものが出ているのが見分けられません。何も出ないほうが分かります。
落ちた設定は、設定画面に一覧で出ます。
パスは、そのフォルダの中だけ
絶対パスや ../ で外に出るものは断られます。開いたプロジェクトが、パソコン上の別の場所を指せないようにするためです。
取ってきたプロジェクトの設定ファイルが /Users/you/private/secret.png を読めてしまうと、それはファイルの存在を確かめる手段になります。人のプロジェクトを取ってきて開くことは普通にあるので、ここが閉じているのは安心できる部分です。
画像はプロジェクトに入れておく
自分で指定する場合、プロジェクトに入れておくのがおすすめです。取ってきた直後から、そして作業フォルダを切った直後からアイコンが付きます。
設定は書いたままの文字列で引き継がれるので、同じ相対パスが向こうでも解決します。
使ってみる
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 の使用量はその契約から引かれます。
たいていは何も書きません。明示したいときだけ、そのプロジェクトのフォルダの一番上に .mulmoterminal.json を置きます。無ければ作ります。パソコン全体の設定である ~/.mulmoterminal/config.json ではありません。
{
"icon": "docs/logo.png"
}
AI にファイルを書かせたときは即座に効きます。エディタで手で書いたときは、タブを再読み込みします。
マスのヘッダーの名札の隣に絵が出れば成功です。何も書かずに出ているなら、favicon が拾われています。
やめるときは "icon": false でそのプロジェクトだけ消えます。仕組みごと要らなければ、Settings の Directory appearance のチェックを外します。
まとめ
二十軒に札を掛けて回るのと、掛かっていない家にだけ足すのでは仕事の量が違います。差を作るのは、すでに何が掛かっているかを見る一手です。
ウェブ系のプロジェクトは favicon をもう持っているので、何もしなくてもアイコンが付きます。書くのは、持っていないプロジェクトだけになります。
探す順序が小さく描いて崩れない順なのと、docs/logo.png をあえて探さないのは、どちらも十四ピクセルで意味をなすかという一つの基準から来ています。
