引っ越しのあと、開けていない段ボールが積んであります。側面には「台所・雑」とだけ書いてあります。
要らないものだという気はします。半年開けていないので、なくても生活は回っていました。それでも捨てられないのは、中に一つだけ、捨てたら困るものが入っている可能性が消えないからです。
だから開けます。三箱目までは真面目に開けて、四箱目で面倒になって、五箱目からは積んだままになります。捨てる前に中を見るという手間が、捨てる作業そのものより高くつくからです。
箱の外側に中身が書いてあれば、開けずに決められました。
金曜の夕方に十八本
AI にコードを書かせるとき、作業ごとに専用のフォルダを切ることになります。git には同じプロジェクトの二本目、三本目の作業フォルダを作る機能があって、それぞれが別の枝を開きます。互いのファイルに影響しないので、並列で頼むならこれが前提になります。
MulmoTerminal は、そのフォルダを画面から作れるようにしています。ターミナルで動く AI を何枚ものマスに並べて見張るための画面で、一マスが一体の AI にあたります。無料で、オープンソースとして公開されています。
名前を入れてボタンを押すだけなので、作るのは一瞬です。一週間で二十本近く溜まります。
fix-login
add-search
1026-fix-header
refactor-auth
try-vitest
…
金曜の夕方に一覧を見ると、十八本あります。どれも自分で作ったはずなのに、どれが片付いていてどれがまだかは思い出せません。
段ボールと同じ状態です。
消してから気づくと、戻せない
作業フォルダを消すと、中の未保存の変更も一緒に消えます。git に刻んでいない変更は履歴のどこにも残らないので、戻す手段がありません。
厄介なのは、自分が見ていないあいだに変更が生まれているところです。AI に並列で頼んでいるのだから、それが目的です。三十分前に頼んだ作業が、いま何行書き換えているかは分かりません。
十八本を一つずつ開いて中を確かめる、という作業が発生します。これも段ボールと同じで、途中で面倒になります。面倒になったあとが危ないところです。
「本当に削除しますか」は何も言っていない
普通の確認は、押す前と押したあとの差を教えてくれません。
「本当に削除しますか」という文は、何が消えるかを言っていないので、読んでも判断が進みません。結果として、読まずに押す癖が付きます。押す癖が付いたあとは、確認があることが害になります。
箱の外側に中身を書くのと同じことを、ボタンの文字でやる方法があります。
ボタンの文字が変わる
マスを閉じるときに、作業フォルダを残すか消すかを聞かれます。

消えるものが無いときと、あるときで、出る文が変わります。あるときは、まだ送っていないコミットの数と、まだ刻んでいない変更の数が並びます。ボタンの文字も、単に消すという言い方から、捨てて消すという言い方になります。
押す前に、その箱に何が入っているかが読めます。
十八本のうち、捨てて消すと出たフォルダだけ中を開いて確かめる。残りはそのまま消していい。十八本を一つずつ開く作業が、ボタンの文字を読むだけになります。
数え直すのは、確認を出す瞬間
細かいけれど効く仕様があります。確認を出す瞬間に、変更を数え直します。そのあいだボタンは確認中の表示になります。
理由があります。マスのヘッダーに出ている変更の数は、少し前の値かもしれません。AI が五秒前にファイルを書いたばかりだと、表示は 0 のままで、実際には変更があります。そのまま消すと、直前に生まれた変更を見落としたまま消えることになります。
AI に並列で作業させているときは、見ていない五秒のあいだにファイルが書かれるのが普通です。だから確認の直前に数え直します。
箱を開ける直前に、もう一度中を覗くのに近い動きです。
管理下の外は消せない
削除の対象は、このアプリが作ったフォルダだけです。管理下の外を指す削除は、サーバー側で断られます。
ブラウザ側のチェックではないので、パスの書き方を変えても、別の方法で送ってもすり抜けません。AI が間違えて別のフォルダを消すという形の不安については、そこはコードで気をつけている場所ではなく、届かない場所になっています。
掃除できないフォルダを作らないために
一つだけ、先にやっておくことがあります。.gitignore に一行足しておきます。
# .gitignore
.mulmoterminal.local.json
作業フォルダには、色や名前を引き継ぐためにプロジェクトの設定のコピーが置かれます。これが .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 に上の一行を足しておきます。
そのうえで、git のプロジェクトのフォルダをマスで開いて、起動フォームの下のほうに出る欄に作業の名前を入れ、ボタンを押します。作業フォルダができて、そこで AI が起動します。
そのマスで何かファイルを直させて、マスを閉じます。消えるものの数が出て、ボタンの文字が変わっていれば読めています。何も直していないマスを閉じると、文が出ないことも確かめられます。
残すほうを選べば、フォルダは残ります。あとから一覧の行から開き直せます。
まとめ
捨てる前に中を見る手間が捨てる作業より高くつくのは、引っ越しの段ボールから変わっていません。箱の外側に中身が書いてあれば、開けずに決められます。
AI に並列で作業させると、作業フォルダが一週間で二十本溜まって同じ状態になります。「本当に削除しますか」は何が消えるかを言っていないので、読まずに押す癖が付きます。
MulmoTerminal は、消えるコミットと変更の数を出してボタンの文字を変えます。数え直すのは確認を出す瞬間で、見ていない五秒のあいだに書かれたものを拾うためです。
