現場の大工は、金槌の柄に色のテープを巻きます。同じ型の金槌が何本も置かれる場所で、自分のを取り違えないためです。
好きな色を選ぶので趣味ですが、取り違えを防ぐので実用でもあります。どちらか一方ということはなくて、両方です。子どもの弁当箱のシール、自転車に貼ったステッカー、部室のラケットに巻いたグリップテープ。全部そうなっています。
自分の印を付けたいという気持ちと、見分けたいという必要は、たいてい同じところから出てきます。
ターミナルの背景に絵を置く
ターミナルの背景に画像を置くのは古くからある趣味です。Eterm の時代からありました。実用ではなく、見た目の話として。
MulmoTerminal でも同じことができます。ターミナルで動く AI を何枚ものマスに並べて見張るための画面で、一マスが一体の AI にあたります。無料で、オープンソースとして公開されています。
そして、ここでは実用的な理由が一つ加わります。九枚のマスを見分けるためです。
見分ける手段が、段階的にある
プロジェクトを区別する手段はいくつも用意されていて、効く場面が違います。
名札は読めば分かります。ヘッダーの色は見れば分かります。アイコンは一目で分かります。ターミナルの中身の色は、拡大していても分かります。背景画像は、拡大していてヘッダーが視界の外にあっても分かります。
下に行くほど、マスの枠から離れて中身に寄っていきます。拡大して一体に集中しているとき、ヘッダーは上端の細い帯なので視界から外れます。そこで効くのが最後の二つです。
金槌の柄と同じ位置にあります。持っているときにいちばん近いところに印が付いている。
文字が読めたまま重なる
普通に画像を背景に敷くと、明るい部分に重なった文字が読めなくなります。背景に絵を置くと使いにくいと言われるのは、これが理由です。
MulmoTerminal では合成して重ねます。暗い配色では背景より明るい部分だけが見え、明るい配色では暗い部分だけが見えます。画像のうち、配色とコントラストがつく側だけが出ます。
文字の色は残るので、読めなくなりません。写真をそのまま敷いたときに、空の部分だけがぼんやり見えるような出方になります。
書き方
{
"backgroundImage": "art/wallpaper.jpg"
}
これだけです。不透明度は15パーセント、全体を覆う設定が既定になっています。
細かく指定するならこう書きます。
{
"backgroundImage": {
"image": "art/wallpaper.jpg",
"opacity": 0.25,
"fit": "contain"
}
}
不透明度は、まず低めから
調整するのは不透明度です。写真なら 0.1 から 0.2 で背景らしく見えて、それより上げるとターミナルの文字と張り合い始めます。
張り合うというのが正確な表現だと思います。読めなくなるわけではありません。ただ視線が画像に取られるようになります。ターミナルは一日見るものなので、これは疲れに直結します。
既定が 0.15 なのは、その範囲の真ん中だからです。
全体を覆うか、収めるか
fit は二つから選びます。選び方は画像の性質で決まります。
写真やテクスチャなら全体を覆います。切れても困らないし、埋まったほうが自然です。ロゴやマークなら全体を収めます。切れると意味が変わります。
パスの扱いはアイコンと同じ
そのフォルダからの相対パス、URL、埋め込んだ画像のどれかです。外に出るものは断られます。開いたプロジェクトがパソコン上の別の場所を指せないようにするためです。
形式はアイコンと同じで、PNG、JPEG、GIF、WebP、AVIF、SVG などが使えます。
作業用に切ったフォルダは書いたままの設定を引き継ぐので、プロジェクトに入れてある画像なら作業フォルダにも出ます。
使えない値は、何も描かない
ファイルが無い、不透明度が範囲外、fit が不明。このどれでも何も描きません。設定画面に、無視された項目として出ます。
エラーを出さず、かつ黙って別の値に丸めもしない、という扱いです。うっすら出す機能なので、間違った値で中途半端に出るより、出ないほうが気づけます。
趣味として使うぶんには
見分ける手段として書きましたが、趣味として使うのもかまわないと思います。むしろ最初はそちらが動機になります。
趣味として使うなら、不透明度を上げたくなります。絵を見たいので。そこは自分で決めることです。
ただ上げると文字と張り合うので、絵を見る時間とコードを読む時間のどちらが長いかで決めるのが実際的です。一日八時間ターミナルを見るなら、0.15 で足ります。
使ってみる
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 の使用量はその契約から引かれます。
画像はそのプロジェクトのフォルダの中に置きます。外は指せません。手元に写真が一枚あれば何でもかまいません。無ければスクリーンショットでも試せます。
cd ~/src/acme-web
mkdir -p art
cp ~/Pictures/wallpaper.jpg art/
置いたら、そのフォルダからの相対パスを設定に書きます。上の例なら art/wallpaper.jpg です。プロジェクトに入れておくと、作業フォルダを切ったときにも出ます。入れたくない写真なら、そのフォルダだけ .gitignore に入れておきます。その場合、作業フォルダには出ません。https:// の URL でもかまいません。
書く場所は、そのプロジェクトのフォルダの一番上に置く .mulmoterminal.json です。無ければ作ります。パソコン全体の設定である ~/.mulmoterminal/config.json ではありません。
{
"backgroundImage": "art/wallpaper.jpg"
}
AI にファイルを書かせたときは即座に効きます。エディタで手で書いたときは、タブを再読み込みします。ファイルを見張ってはいません。
そのフォルダのターミナルの後ろに、絵がうっすら見えれば成功です。濃すぎたら opacity を 0.1 まで下げます。
やめるときは、.mulmoterminal.json からその項目を消せば戻ります。ファイルごと消してもかまいません。
まとめ
道具に印を付けるのは趣味であり、同時に取り違えを防ぐ実用でもあります。金槌の柄のテープはどちらか一方ではありません。
ターミナルの背景画像も同じ位置にあります。古くからある趣味ですが、九枚のマスを並べる画面では、拡大していても分かる最後の手がかりになります。
不透明度をまず低めにするのは、文字と張り合わせないためです。上げれば絵は見えますが、一日見る画面なので疲れに直結します。
