リファレンス

ポートと環境変数

purplemux が開くすべてのポートと、その動作に影響するすべての環境変数。

purplemux はワンライナーインストールを目指していますが、ランタイムは設定可能です。このページではサーバが開くすべてのポートと、サーバが読むすべての環境変数を列挙します。

ポート

ポート デフォルト 上書き 備考
HTTP + WebSocket 8022 PORT=9000 purplemux 8022 がすでに使用中ならサーバは警告を出してランダムな空きポートにバインドします。
内部 Next.js (本番) ランダム pnpm start / purplemux start では外側のサーバが 127.0.0.1:<random> にバインドされた Next.js standalone にプロキシします。外部公開なし。

8022web + ssh をくっつけたもの。プロトコルではなくユーモアです。

バインドするインターフェースはアクセスポリシーに従う
purplemux は、アクセスポリシーが実際に外部クライアントを許可している場合にのみ `0.0.0.0` にバインドします。localhost のみのセットアップは `127.0.0.1` にバインドするので、LAN 上の他のマシンは TCP 接続すら開けません。下記の `HOST` を参照。

サーバ環境変数

server.ts と起動時にロードされるモジュールが読みます。

変数 デフォルト 効果
PORT 8022 HTTP/WS の待ち受けポート。EADDRINUSE 時はランダムポートにフォールバック。
HOST 未設定 許可するクライアントを示すカンマ区切りの CIDR / キーワード。キーワード: localhosttailscalelanall (または * / 0.0.0.0)。例: HOST=localhostHOST=localhost,tailscaleHOST=10.0.0.0/8,localhost。env で設定された場合、アプリ内の 設定 → ネットワークアクセス はロックされます。
NODE_ENV purplemux start では productionpnpm dev では development 開発パイプライン (tsx watch、Next dev) と本番パイプライン (tsup バンドルが Next standalone にプロキシ) を切り替え。
__PMUX_APP_DIR process.cwd() dist/server.js.next/standalone/ を保持するディレクトリを上書き。bin/purplemux.js が自動設定。通常触る必要はありません。
__PMUX_APP_DIR_UNPACKED 未設定 macOS Electron アプリ内の asar-unpacked パス用の __PMUX_APP_DIR バリアント。
__PMUX_ELECTRON 未設定 Electron メインプロセスがプロセス内でサーバを起動するときに設定し、server.ts の自動 start() 呼び出しをスキップして Electron がライフサイクルを駆動できるようにする。
PURPLEMUX_CLI 1 (bin/purplemux.js が設定) プロセスが Electron ではなく CLI / サーバであることを共有モジュールに知らせるマーカー。pristine-env.ts が使用。
__PMUX_PRISTINE_ENV 未設定 親シェルの env を bin/purplemux.js が JSON スナップショットで取得。子プロセス (claude、tmux) が消毒された PATH ではなくユーザの PATH を継承するため。内部用 — 自動設定。
AUTH_PASSWORD 未設定 Next 起動前にサーバが config.json の scrypt ハッシュから設定。NextAuth がそこから読みます。手動設定しないでください。
NEXTAUTH_SECRET 未設定 同様 — 起動時に config.json から populate。

ロギング環境変数

src/lib/logger.ts が読みます。

変数 デフォルト 効果
LOG_LEVEL info LOG_LEVELS で名前指定されないものすべてのルートレベル。
LOG_LEVELS 未設定 カンマ区切りの name=level ペアによるモジュール単位の上書き。

レベル順: trace · debug · info · warn · error · fatal

LOG_LEVEL=debug purplemux

# Claude フックモジュールだけをデバッグ
LOG_LEVELS=hooks=debug purplemux

# 複数モジュールを同時に
LOG_LEVELS=hooks=debug,status=warn,tmux=trace purplemux

最も役立つモジュール名:

モジュール ソース 見えるもの
hooks pages/api/status/hook.tsstatus-manager.ts の一部 フック受信 / 処理 / 状態遷移
status status-manager.ts ポーリング、JSONL ウォッチャー、ブロードキャスト
tmux lib/tmux.ts すべての tmux コマンドと結果
serverlock など 対応する lib/*.ts プロセスライフサイクル

ログファイルはレベルに関わらず ~/.purplemux/logs/ に着地します。

ファイル (環境変数相当)

いくつかの値は環境変数のように振る舞いますが、CLI とフックスクリプトが env のやり取りなしに見つけられるようにディスクに置かれます:

ファイル 内容 使用元
~/.purplemux/port 現在のサーバポート (プレーンテキスト) bin/cli.jsstatus-hook.shstatusline.sh
~/.purplemux/cli-token 32 バイト hex の CLI トークン bin/cli.js、フックスクリプト (x-pmux-token で送信)

CLI は env でも受け取り、こちらが優先されます:

変数 デフォルト 効果
PMUX_PORT ~/.purplemux/port の内容 CLI が話すポート。
PMUX_TOKEN ~/.purplemux/cli-token の内容 x-pmux-token として送られる Bearer トークン。

完全なコマンドは CLI リファレンス を参照してください。

組み合わせの例

いくつかのよくある組み合わせ:

# デフォルト: localhost のみ、ポート 8022
purplemux

# どこからでもバインド (LAN + Tailscale + リモート)
HOST=all purplemux

# Localhost + Tailscale のみ
HOST=localhost,tailscale purplemux

# カスタムポート + 詳細なフックトレース
PORT=9000 LOG_LEVELS=hooks=debug purplemux

# デバッグ用フルセット
PORT=9000 HOST=localhost LOG_LEVEL=debug LOG_LEVELS=tmux=trace purplemux
永続インストールでは launchd / systemd ユニットの `Environment=` ブロックで設定してください。ユニットファイル例は [インストール](/purplemux/ja/docs/installation/#start-on-boot) を参照。

次のステップ