MulmoTerminal の sessionIdleReapDays — 再起動を跨ぐ古いセッションを安全に片付ける

MulmoTerminal の sessionIdleReapDays — 再起動を跨ぐ古いセッションを安全に片付ける

課題:3 週間使うと、再開できる会話が 40 行並ぶ

金曜の夕方、AI に長めの作業を頼んだまま帰ります。月曜の朝、ノートパソコンを開くとその会話がそこにいます。アプリを再起動しても、OS を再起動しても生き残っている。

MulmoTerminal は裏で tmux を使ってターミナルセッションを生かし続けるので、再起動を跨いで会話を再開できます。

便利です。ただし、3 週間後には再開可能なセッション一覧に 40 行並びます。今日の続きを探すために、40 行を上から読むことになります。

既存のやり方とそのコスト

1 行ずつ手で止める

Settings → Sessions that survived a restart のセッション一覧には、各行に stop ボタンがあります。1 行ずつ押せば止まります。

ただし 40 行を 1 行ずつ判断するのは面倒で、「もう使わないと言い切れるか?」の判断を毎回しないといけない。やる気が続きません。

自動片付けを有効にする勇気がない

一覧の横には「何日放置したら片付けるか」という設定があります。既定は 7 日。

ここで手が止まります。7 日前の会話にはまだ用があるかもしれない。消してしまったら、あのとき AI が書いた設計の説明は二度と読めないのか。

自動で何かが消える設定を、中身を知らずに有効にするのは、いちばん不安な種類の操作です。結果、片付けないままセッション数が増え続けます。

MulmoTerminal の解決:消えるのはプロセスとスクロール、会話は残る

先に結論を書きます。

消える 残る
動いていた tmux プロセス ○ —
ターミナル画面のスクロールバック ○ —
会話の transcript(頼んだこと / AI の返答) — ○

会話そのものは消えません。 エージェントが書き残した transcript は別のファイル(Claude や Codex の管理下)に保存されていて、tmux セッションの寿命とは独立です。片付けたあとでも、同じ行から会話を再開できます。

生き残っているものの正体は「画面とプロセスの入れ物」であって、「会話」ではない。片付けの対象になるのは入れ物のほう。

これが分かれば、自動片付けを有効にする判断材料ができます。

{
  "sessionIdleReapDays": 14,
  "sessionReapIntervalHours": 24
}

詳細

sessionIdleReapDays:何日放置したら片付けるか

既定 7 日、0 で無効、0〜365

誰も attach しておらず、出力もないターミナルを、何日経ったら片付けるかの日数です。会話は失われません — transcript があれば tmux セッション無しで再開できます。失うのは プロセスとスクロールバック だけです。

対象になる条件が 2 つある

何でも消えるわけではありません。

Settings → Sessions that survived a restart の対象一覧のすぐ横にこの日数設定があるようになっています。数字だけで決めず、「これが消える」を見ながら決められる作りです。

「設定したのに減らない」の原因

もう 1 つ知っておく価値のある点があります。

掃除が走るのは、既定では起動時だけです。MulmoTerminal を起動したまま 2 週間使う人だと、その 2 週間のあいだ一度も掃除されません。「sessionIdleReapDays を 7 にしたのに減らない」の答えがここです。

稼働中にも掃除するには、sessionReapIntervalHours を書きます。

sessionReapIntervalHours:稼働中に何時間ごとに回し直すか

既定 0(= OFF、起動時のみ)、0〜168

稼働中にスイープを何時間ごとに回し直すかです。再起動しないサーバは、これが 0 のままだと二度と見に行きません。毎日再起動する人は既定 0 で足りますが、起動したままの人はこれを入れないと掃除が走りません。

あなたの使い方 必要な設定
毎日 MulmoTerminal を再起動する sessionIdleReapDays だけでいい
起動したまま 2 週間使う sessionReapIntervalHours も要る

稼働中のスイープには手心が加わる

稼働中に回すときは、このサーバが pty を掴んでいるセッションは経過日数に関係なく対象外です。

当たり前に見えて、必要な配慮です。稼働中は「今日ずっと開いているが 7 日前に始めた会話」が存在しうるので、日数だけで消すといま使っているものが消えます。

起動時のスイープにはこの区別は要りません。起動した直後は誰も使っていないので。

設定変更の反映タイミング

変更先 いつ効くか
起動時のスイープ(sessionIdleReapDays の次回反映) 次の起動から
稼働中スイープの間隔(sessionReapIntervalHours) 設定画面で保存すればすぐ稼働中サーバに仕掛け直す
手でファイルを書き換えた 設定ファイルを読み直すか、再起動

稼働中スイープの間隔は「数えるのは前回のスイープから」。何度保存しても次の実行は遅れません。

「いま仕掛かっている値」が設定画面に出る

タイマーの設定は「効いているかどうか」を外から確かめる手段がありません。設定ファイルに書いた値と、サーバがいま実際に仕掛けている値が食い違うことがある(再起動していないとき)。

Settings の該当節に、保存した値といま動いている値の両方が出ます。食い違っていれば、まだ反映されていないと分かります。

完全に無効化もできる

自動で消えるのがどうしても不安なら、sessionIdleReapDays を 0 にして無効化できます。そのうえで、一覧の stop ボタンで 1 つずつ手で止められます。

このときも、止まるのは tmux プロセスとスクロールバックだけで、会話は残ります。「自動に任せる」「日数を長くする」「無効にして手でやる」のどれを選んでも、失うものの中身は同じです。

使ってみる

MulmoTerminal を立ち上げたら、Settings → Sessions that survived a restart を開きます。

  1. いま生き残っているセッション一覧を見る
  2. 対象一覧の横の sessionIdleReapDays を、自分の使い方に合わせて設定(既定 7 日より長くしたいなら 14 や 30)
  3. 起動したまま使うなら sessionReapIntervalHours も設定(24 なら 1 日 1 回稼働中スイープ)
  4. 保存すれば、稼働中スイープはすぐ、起動時スイープは次回起動から効く

ファイルに手で書く場合は ~/.mulmoterminal/config.json に次を足します。

{
  "sessionIdleReapDays": 14,
  "sessionReapIntervalHours": 24
}

手で書いた場合は「設定ファイルを読み直す」か再起動が必要です。保存後、Settings の該当節に「サーバが実際に仕掛けている値」が出るので、反映されているかはそこで確認できます。

書き方の詳細は MulmoTerminal 公式ガイドの設定ページ に全キーが載っています。

まとめ

関連: MulmoTerminal 公式ガイドの設定ページ / tmux で Claude Code を並列に走らせる限界 / MulmoTerminal の git worktree 隔離

この記事をシェア

関連記事

記事一覧に戻る