1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VS CodeのCodex履歴をWorkspaceごとに分離する

1
Posted at

VS CodeのCodex履歴をWorkspaceごとに分離する

TL;DR

Workspaceごとにセッション履歴(というかCodexの大体の設定)を分けました。

  • やったこと

    1. CodexをWSLで実行
    2. chatgpt.cliExecutable でラッパーを挟む
    3. ラッパー内で CODEX_HOME="$PWD/.codex" を設定
  • 結果

    project-a/.codex
    project-b/.codex
    

    という感じで、WorkspaceごとにCodexの設定を置くようにしました。

検証環境

Windows 11
VS Code 1.140.0
OpenAI Codex extension 26.928.31416
WSL2 Ubuntu
Codex CLI 0.159.2

やりたいこと

Codexの履歴をWorkspace単位にしたい

VS CodeのCodex拡張、全セッションが ~/.codex に保存されてるので何のWorkspaceで作業してても全部のセッションが表示されてウザい。とても。

Codexの状態保存先(設定やセッション履歴など)は CODEX_HOME で指定できます。VS Code拡張では、これが ~/.codex を固定で指名してて、融通利かない。

じゃあ code を立ち上げる時に CODEX_HOME を上書きしてあげればいいのですが、Workspaceごとに専用のショートカットを作りたくない1。

だからCodex起動時、現在のWorkspace直下に .codex を作ります。これを CODEX_HOME にします。

手順

1. VS CodeでCodexをWSL実行にします

{
  "chatgpt.runCodexInWindowsSubsystemForLinux": true
}

2. WSLにラッパーを作ります

mkdir -p ~/bin

cat > ~/bin/codex-workspace <<'EOF'
#!/usr/bin/env bash
set -euo pipefail

export CODEX_HOME="$PWD/.codex"
mkdir -p "$CODEX_HOME"

CODEX_BIN="$(
  find /mnt/c/Users/<Windowsユーザー名>/.vscode/extensions \
    -maxdepth 4 \
    -path '*/openai.chatgpt-*-win32-x64/bin/linux-x86_64/codex' \
    -type f \
    -printf '%T@ %p\n' |
  sort -nr |
  head -n1 |
  cut -d' ' -f2-
)"

if [[ -z "${CODEX_BIN:-}" || ! -x "$CODEX_BIN" ]]; then
  echo "Bundled Codex binary not found" >&2
  exit 127
fi

exec "$CODEX_BIN" "$@"
EOF

chmod +x ~/bin/codex-workspace

3. VS Code側でラッパーを指定します

{
  "chatgpt.runCodexInWindowsSubsystemForLinux": true,
  "chatgpt.cliExecutable": "/home/<WSLユーザー名>/bin/codex-workspace"
}

4. VS Codeを再起動します

  • サインインを要求されるのでやります
  • Workspaceに .codex が作成されるので、必要に応じて .gitignore に追記してあげてください

結果

VSCodeでWorkspace Aを開くと、

Workspace-A/.codex/

Workspace Bでは、

Workspace-B/.codex/

が使われます。

肝

export CODEX_HOME="$PWD/.codex"

chatgpt.cliExecutable を使ってCodex本体の手前にラッパーを挟むことで、Workspaceごとに CODEX_HOME を切り替えています。

注意

  • 単一ルートWorkspaceでの話です

  • chatgpt.cliExecutable はCodex実行ファイルを差し替える設定なので、Codex拡張側の実装変更によって動かなくなる可能性があります

  • 現時点(2026/10/1)では、セッション履歴を自動分離できています

  1. 別のVS Codeが既に起動している場合、新たに立ち上げたVS Codeは既存プロセスの環境変数を引き継ぎます。複数Workspaceを同時起動する用途ではショートカットは安定しません。ただ、ショートカットで問題ない場合は、リンク先を C:\Windows\System32\cmd.exe /d /c "set "CODEX_HOME=C:\work\project-a\.codex" && code "C:\work\project-a"" とすればOKです。 ↩

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?