コンテンツにスキップ

永続セッション

永続セッションは、シェルを Calyx 本体とは別のローカルデーモン(calyx-session)に持たせる仕組みです。 Calyx を終了したりクラッシュしたりしてもシェルのプロセスは生き残り、あとから再接続して続きを操作できます。

レイアウトの自動復元がタブ構成、スプリット、作業ディレクトリを復元して新しいシェルを起動するのに対し、永続セッションはシェルそのものを維持します。

Settings の Sessions ペインで Enable persistent sessions をオンにします。 標準ではオフで、オンにしたあとに作られたペインから永続セッションになります。 すでに永続セッションを持つペインは、トグルを戻しても影響を受けません。

永続セッションが動いている状態で Calyx を終了しようとすると、確認ダイアログが表示されます。 そのまま終了すると、セッションは切り離されてバックグラウンドで動き続けます。 次回起動時に、各ペインが元のセッションへ再接続されます。

自動復元が行われなかった場合や失敗した場合は、ウィンドウ上部に「Your previous session was preserved.」というリカバリーバーが表示され、Restore で復元、Dismiss で破棄を選べます。 コマンドパレットの Recover Previous Session からも同じ復元を実行できます。

View > Session BrowserCmd+Shift+B)またはコマンドパレットの Session Browser… で開きます。 デーモンが管理しているセッションが、ウィンドウや起動をまたいで一覧表示されます。 どのウィンドウにも接続されていないセッションには Detached バッジが付きます。

  • Attach: セッションを新しいタブとして開きます。タブ名はセッションの作業ディレクトリから付きます。
  • Kill: セッションを終了します。

フォーカス中のペインに対しては、コマンドパレットから Detach Session(セッションを動かしたままペインを切り離す)と Kill Session も実行できます。

SSH で接続できるホスト上にも永続セッションを作れます。

  1. 対象ホストに一度だけデーモンを配備します。Calyx のターミナルで次を実行します。

    Terminal window
    calyx-session remote-install <host>

    同梱の calyx-session バイナリが ssh 経由でリモートの ~/.calyx/bin/ にコピーされます。

  2. Session Browser を開くか、コマンドパレットで New Remote Session… を実行してホストを選びます。 ホスト候補は ~/.ssh/config から読み取られます。

通信はすべて利用者が開始する ssh であり、デーモンが自発的にネットワーク接続を張ることはありません。

永続セッションの出力履歴は、標準ではデーモンのメモリ上にだけ保持されます。 Settings の Sessions ペインで Persist session history to disk をオンにすると、履歴が ~/.calyx/state/history/<セッション ID>.raw に書き込まれます(10 MB でローテーション)。 ターミナル出力をディスクに書き出す設定のため、標準ではオフになっています。

セッション内で Claude Code などのエージェント CLI が動いていた場合、再接続時に会話の再開を提案できます。 Settings の Agents ペインで Offer to resume agent CLI conversations をオンにします。 Auto-execute resume (skip confirmation) もオンにすると、確認なしで再開コマンドが送信されます。

デーモンには CLI が付属し、Calyx 内のターミナルでは PATH が通っています。 calyx-session lsattachnewkillhistoryremote-install などのサブコマンドがあります。 上記の操作はすべて GUI から行えるため、CLI はスクリプト化したい場合に使います。

Calyx は、上記の calyx-session デーモンとは別に、herdr という独立したターミナルマルチプレクサのワークスペースも扱えます。 herdr は自前のバックグラウンドサーバーを持つ、別のツールです。 herdr がインストールされていれば、そのワークスペースは自動的に Session Browser に表示されます。 インストールされていなければ、このページの他の機能に変化はありません。 Calyx の起動後に herdr をインストールしたり起動したりした場合も同じで、Calyx がそれを検知するため、起動し直す必要はありません。

herdr の各サーバーは専用の行として表示され、現在保持しているワークスペース数とペイン数が示されます。 その下に、サーバーが持つワークスペースが一覧されます。

  • New: そのサーバー上にワークスペースを作成して開きます(作業ディレクトリは herdr 側が決めます。フォーカス中のワークスペースのディレクトリか、フォーカスがなければホームディレクトリです)。
  • 各ワークスペースの行には、専用の AttachKill があります。
  • すでにそのワークスペースが現在のウィンドウでタブとして開かれていれば、AttachShow と表示されます。

ワークスペースを開くと、herdr のペインごとに一つずつ、herdr 側と同じレイアウトで分割された Calyx タブが作られます。 そのタブやタブ内のペインを閉じても、Calyx 側が herdr から切り離されるだけです。 ワークスペースとそのプロセスは、herdr 側で動き続けます。 実際に終了するには、Session Browser の Kill を使います。

Calyx を終了して再起動した場合、herdr、そのソケット、対象のペインがすべてまだ存在していれば、herdr のタブは自動的に再接続されます。 存在していなければ、そのタブは通常のシェルとして開きます。

コマンドパレットには Attach herdr TUI もあり、Calyx のネイティブな分割ペインの代わりに、herdr 自身のフルスクリーン UI を単一のタブで開きます。 これは Session Browser を一度でも開いたあとに表示されるようになり、常に Calyx が見つけた最初の herdr セッションを対象にします。

herdr のペイン内で動いているエージェントは、エージェントサイドバーにも表示されます。