4.11.0 — 止め方と、使うポート

4.11.0(2026-08-28 リリース)時点のスナップショットです。 アプリが進めば内容は古くなります。 それは想定どおりで、常に最新なのは各節からリンクしている本編のガイドです。

npx mulmoterminal@latest

このリリースで手を動かす必要があるのは 2 つ。新しい止め方(必要になる前に知っておく価値が あります)と、ポートの挙動(昨日まで通っていた起動を断ることがあります)です。残りは何もせずに 効きます。

動いているサーバを止める

これまで MulmoTerminal を止める方法は、起動したターミナルを見つけて Ctrl+C を押すことだけでした。 npx mulmoterminal@latest はブラウザを開くので、そのターミナルは見ていない方の窓であることが 多く、しかもタブを閉じてもサーバは動き続けます。

方法が 3 つになりました。どれを使うか前もって決める必要はありません。

ブラウザから

Settings → Quit MulmoTerminalsessions グループの末尾)。npx で起動したときは視線が ブラウザにあるので、たいていこれが一番近い導線です。

Ctrl+C と同じ終了処理が走ります。セッションは強制終了ではなく、きちんと閉じられます。

どのターミナルからでも

npx mulmoterminal@latest stop

グローバルインストールしているなら mulmoterminal stop起動したターミナルでなくても構いません —— サーバは自分のプロセス id を ~/.mulmoterminal/instances/ に登録しており、stop はそれを読み、 そのプロセスが本当に MulmoTerminal か確認してから signal を送ります。

何も聞かれずに止めたいときは:

mulmoterminal stop --force

残りは mulmoterminal stop --help に載っています。

プロセスを探して

プロセスが自分の名前を名乗るようになりました。今までは、どの経路で起動しても node としか 出ていませんでした:

$ ps aux | grep mulmoterminal
… mulmoterminal :34567

最後の手段として pkill -f mulmoterminal が効きます。複数動いていることがあるので、名前にポートが 入っています。

更新バッジ

npx mulmoterminal@latest で起動している場合、新版があることを知らせるヘッダーのバッジは そもそも出る瞬間がありませんでした。チェックが起動時の 1 回だけで、その瞬間の「動いている版」は registry の latest そのものなので、唯一走る比較は「あなたは最新です」しか返しようがなかったためです。

設定は要りません。3 時間ごとに再チェックするようになったので、何日も動かしっぱなしのサーバでも リリースに気づきます。完全に切りたい場合は従来どおり:

MULMOTERMINAL_NO_UPDATE_CHECK=1 npx mulmoterminal@latest

PORT が効くようになりました —— 人によっては挙動の変化です

PORT はこれまで無視されていました。 PORT=34601 npx mulmoterminal は 34567 で起動し、 しかもポート衝突時のメッセージは「その効かない変数を設定しろ」と言っていました。両方直っています。

PORT=34601 npx mulmoterminal@latest     # 34601 で起動するようになった
npx mulmoterminal@latest --port 34601   # --port は今も PORT より優先

別の用途でシェルプロファイルに PORT を export している方は、ここを読んでください。 MulmoTerminal がそのポートを取りに行くようになります。そうなったときは launcher が言います:

[mulmoterminal] Port 3000 comes from the PORT environment variable — that is the port MulmoTerminal is asking for.
  Terminals inside cells inherit that PORT too, as in any shell you exported it from.

その回だけ変えたいなら --port、恒久的にはシェルの PORT を外してください。

自分で設定していない PORT がセル内に入ることは無くなりました。 launcher が自分のポートを 全セルの全ターミナルに配っていたので、セル内で起動した dev サーバが PORT=34567 を読んで MulmoTerminal 自身のポートを掴みにいっていました。今は、あなたのシェルが持っていた場合だけ入ります。

tmux persistence を使ったままアップグレードした方へ。 アップグレードを生き延びた tmux サーバは 古い値をグローバル環境に持ち続け、新しいペインに配ります。1 行で消せます:

tmux -L mulmoterminal set-environment -gu PORT

以降に作られるペインはきれいになります。既存のペインは閉じるまで保持します。マシンの再起動でも 同じ結果になります。

昨日まで通っていたポートで、起動を断られることがあります

このリリースで一番驚きやすい変化なので、理由まで書いておきます。

以前は、1 つ目が掴んでいるポートで 2 つ目を起動すると ✓ MulmoTerminal is ready と出て ——それはすでに動いている方のサーバを指していました—— そのあとで失敗していました。それを 捕まえるはずの検査が別のアドレスを見ていたので、既定構成では一度も発火していませんでした。

今は、起動前に「この launch が必要とする全アドレス」を確認します:

[mulmoterminal] Port 34567 is already in use.
  If that is MulmoTerminal, it is already running at http://localhost:34567
  To start a second one anyway: --port <number>

MULMOTERMINAL_HOST を設定している場合、もう 1 つ確認します。 どのアドレスに bind しても、 MulmoTerminal 自身のセッションは 127.0.0.1 経由でサーバに繋ぎ返します —— GUI MCP がその住所を リテラルで書いているので、ブラウザが何を使うかに関係なく hooks と GUI ツールはそこへ行きます。 127.0.0.1:<ポート> を他のプロセスが握っていると、自分のセルから話しかけられないサーバを 起動する代わりに、launch を止めます。

そのポートを空けるか、--port で別の番号を選んでください。

MULMOTERMINAL_HOST を使っている方へ

「サーバが自分のセッションから届くか」に関する修正が 2 つ入っています。

  • 個別アドレスを指定してもサーバが自分から切り離されなくなりました。 LAN アドレスを指定すると hooks が毎ツール失敗し、GUI MCP が「still connecting」のままになっていました。指定したアドレスが loopback を serve しない場合、サーバは loopback でも listen するようになりました。
  • launcher が表示する URL は、実際に確認したアドレスです。 localhost とは言わなくなりました —— あれは ::1127.0.0.1 の両方に解決するので、いま起動したのとは別のプロセスへブラウザを 送ってしまえるからです。既定構成では、これまで http://localhost:34567 と出ていたところが http://127.0.0.1:34567 になります。同じサーバを、正確に名指ししているだけです。

非 loopback アドレスに bind したときのセキュリティ警告は変わっていません。このサーバは自前の認証を 持たないので、目を通す価値があります。

その他

いずれも設定は不要です。

  • LLM が MulmoScript を書き換えると、開いたままのキャンバスが更新されるようになりました。 今までは開き直しが必要でした。全 beat 種別が編集でき、スクリプト全体を送り直さずに 1 beat だけ 差し替えられます。
  • 文書プレビューで TeX 数式が描画されるようになりました。 $…$$$…$$ が MathJax SVG に なります。同じ文書の Marp デッキ側は元からそうだったので、両面がようやく一致します。US$5$5-$10 は数式になりません。
  • shared app のテンプレートがそれぞれ本物のスタイルシートを持つようになりました。 生成される ページが灰色の箱ではなく、テンプレートごとに固有の色相で整った状態で届きます。
  • プロジェクトボードで、登録が「担当宣言」と取り違えられなくなりました。 登録前に 「これをやります」を押すと、担当したつもりのまま離れてしまう状態でした。登録が済んだら元の行へ 連れ戻し、何が起きなかったかをはっきり言うようになっています。
  • todo-board は削除されました —— project-board が同じことをすべてできます。
  • Campaign Mode の土台が入りました(まだどこからも呼ばれていません)。タスクの状態機械、 永続記録、パス排他のための claim registry です。アプリの挙動は変わりません。

ここに書いたことの最新版は本編のガイドです。このページは 2026-08-28 時点の スナップショットで、アプリが進んでも更新されません。


This site uses Just the Docs, a documentation theme for Jekyll.