AIのツール(Claude CodeやCodex等)を使って作業をするとき、これまでは使うパソコンやスマホを変えると、それまでの会話や作業の「記憶」がリセットされてしまっていました。別の画面を開くたびに、また最初から説明し直すのはとても面倒で、考える流れが止まってしまいます。この問題をなくすために、作業の記憶を1か所にまとめて、どの機械からでも同じ記憶を呼び出せる仕組みを作りました。

ローカルセッションの揮発性とコンテキスト断絶の解体

デバイス間の「環境移行に伴う摩擦」は、単なる手間の問題ではなく、自律的な開発フローにおける致命的な認知リソースの漏洩である。特定の端末内に情報が滞留する状態は、情報代謝の観点から構造的欠陥と言わざるを得ない。

本稿では、この揮発性コンテキストをローカルファイルシステムから抽出し、状態管理基盤(Codex)をSingle Source of Truth(単一の真実の情報源)として統合することで、端末間の非連続性を完全に排除し、作業環境を空間的に透過させるトポロジーを定義する。

イメージ画像

アーキテクチャ設計:永続化レイヤーとCodexの直結モデル

同期の基本構造は、CLIツールの状態保存ディレクトリを商用クラウドストレージの同期デーモンで物理的にマウントするような旧来の手法を排する。ファイルロックの競合や同期ラグといった不確実性を排除するため、APIを介した「状態の差分同期(State Diff Synchronization)」を採用する。

  • 状態抽出層: CLIツールの設定ファイル群、セッションごとの会話履歴データ、利用トークン数のチェックポイントデータを監視対象とする。
  • 中継プロトコル: 各計算機に配置されたローカルプロキシ(軽量なシェルスクリプトによるラッパー)と、Codex側のREST/Webhookエンドポイント間でJSONペイロードを交換する。
  • トポロジー設計: 完全なスター型ネットワーク。全端末はP2Pで直接通信せず、必ずCodexを中央ハブとして状態をプル/プッシュする。これにより、特定のプラットフォームが提供する同期機能への依存を断ち切り、システムの高い自己修復性と信頼性を担保する。

核心:セッションまたぎの会話継続処理

複数端末からのアクセスにおいてコンテキストを淀みなく接続するための技術的要件は、以下の3点に集約される。

コンテキスト衝突を回避する排他制御(Optimistic Concurrency Control)

非同期アクセスによる履歴ファイルの論理的破損を防ぐため、Codex側にリースベースのロック機構およびベクタークロックを用いたバージョン管理を実装する。

  1. 端末Aがセッション起動時、CodexのAPIエンドポイントへ POST /api/session/lock を送信し、タイムスタンプベースのトークンを取得。
  2. ロック有効期間中(セッション稼働中)は、他端末からのコンテキスト上書きをAPIゲートウェイ層でHTTP 409 Conflictとして弾く。
  3. 端末Aのセッション終了時、明示的なAPIコールによって即座にロックを解放(アンロック)し、後続の端末へ状態の所有権を移譲する。

履歴データの動的差分(Diff)伝達とハイドレーション

通信リソースとAPIコールの計算コストを最小化するため、状態の全量転送(フルダンプ)は原則として行わない。

  • Diff生成アルゴリズム: セッション終了時、直前の状態スナップショットと現在の状態の差分を JSON Patch (RFC 6902フォーマット) 形式で計算し、抽象構文木(AST)レベルでの変更点のみを抽出する。
  • ペイロード転送: 数KBに圧縮された差分データのみをCodexへ送信し、状態履歴テーブルへ追記(Append-only)する。
  • モバイル等での状態復元: 別端末からアクセスした際、Codexから最新のベースステートと未適用の差分パッチ群を一括取得し、インメモリで状態ツリーを再構築(ハイドレーション)した上でローカルストレージへ展開する。

モバイル界面におけるセッション復元ロジック

リソースが制限されたモバイル端末においては、フルスペックの実行環境を稼働させるのではなく、API界面やSSHプロトコルを介してCodex上の最新状態へ接続する手法をとる。ターミナルエミュレータからバックエンドのヘッドレス環境へセキュアトンネル経由で接続するか、軽量なWebフロントエンドからCodexのAPIを直接叩くことで、移動中であってもデスクトップでの最終入力から1秒のラグもなく同一のコンテキスト上で対話を再開・継続できる。

環境変数と自動化ワークフロー

上記プロセスを人間の意識的介入なく(バックグラウンドで完全に自律して)実行するため、環境変数による状態パスの動的割り当てと、実行コマンドをフックするラッパースクリプトを実装する。また、Codex側のルーティングおよび状態永続化にはn8nをデーモンとして稼働させ、自動化パイプラインを構築する。

システム環境変数の注入:

Bash

export CODEX_API_GATEWAY="https://codex.internal/v1/sync"
export CLAUDE_STATE_PATH="$HOME/.config/claude_state"
export SYNC_STRATEGY="json_patch_diff"
export DEVICE_IDENTITY=$(hostname | sha256sum | head -c 16)

自動同期ラッパースクリプト (claude-sync-exec.sh):

Bash

#!/bin/bash
set -e

# PRE-HOOK: Codexから最新のDiffを取得しローカル状態を同期
HTTP_STATUS=$(curl -s -o /tmp/state_patch.json -w "%{http_code}" -X GET "$CODEX_API_GATEWAY/pull?device=$DEVICE_IDENTITY")
if [ "$HTTP_STATUS" -eq 200 ]; then
    apply_json_patch "$CLAUDE_STATE_PATH/history.db" /tmp/state_patch.json
fi

# SESSION LOCK: 状態更新権限の取得
curl -s -X POST "$CODEX_API_GATEWAY/lock?device=$DEVICE_IDENTITY" > /dev/null

# EXECUTION: CLI環境の本体プロセス実行(ユーザーの対話セッション)
claude-code "$@"

# POST-HOOK: セッション終了に伴う状態の自動コミット
# ローカルのバックアップと現在の状態を比較し差分を計算
generate_json_diff "$CLAUDE_STATE_PATH/history.db.bak" "$CLAUDE_STATE_PATH/history.db" > /tmp/outbound_patch.json

# CodexへDiffをプッシュし、セッションロックを直ちに解放
curl -s -X POST -H "Content-Type: application/json" -d @/tmp/outbound_patch.json "$CODEX_API_GATEWAY/push?device=$DEVICE_IDENTITY"
curl -s -X DELETE "$CODEX_API_GATEWAY/lock?device=$DEVICE_IDENTITY" > /dev/null

バックエンドのn8nワークフローは、Webhookノードで上記のリクエストを非同期に受信する。受け取ったDiffデータをPostgreSQL等の永続層へ時系列順に格納し、各端末からの要求に対して瞬時に最新のコンテキストツリーを生成・返却するステートマシンとして機能する。

自律的な思考の延長線としての開発環境

本同期プロトコルにより、計算機やモバイル端末は単なる「演算と入出力のための物理的インターフェース(一時的な器)」へと還元された。ローカル環境への依存から生じるデータ揮発のリスクや、手作業での履歴移行といった無駄な摩擦は完全に解体された。

特定の商用プラットフォームによる不透明な同期ロジックを拒絶し、APIプロトコル、シェルスクリプト、そして差分伝達という剥き出しの技術事実のみで構築されたこのトポロジーは、極めて軽量かつ堅牢である。開発者がいかなる物理的・時間的制約下にあろうとも、思考の流速を淀ませることなく、いつでもどこでも同一のコンテキストを引き継げる。デバイスという物理的境界を脱ぎ捨て、環境全体を自律的な思考の延長線へと変容させた、真に独立した「自前の開発OS」の証明である。

その「手作業」、AIなら0.1秒で平滑化できます。

FAXの転記、メールの集計、コピペの繰り返し。これらはもはや「仕事」ではありません。
あなたの業務を何時間削減できるか、5秒で算出します。 算出後、その場で「そのまま使える自動化コード」を発行します。

▶ 年間の削減時間を今すぐ検証する(個人情報不要)

※相談は不要です。まず「数字」と「コード」を持ち帰ってください。