[{"data":1,"prerenderedAt":370},["ShallowReactive",2],{"content-/dev-env-codex-review-and-statusline":3,"all-pages-for-dir":368,"og-image-/dev-env-codex-review-and-statusline":369},{"id":4,"title":5,"body":6,"category":351,"concepts":352,"description":353,"extension":354,"meta":355,"navigation":141,"ogImage":352,"path":356,"project_name":357,"published":358,"publishedAt":359,"seo":360,"stem":361,"tags":362,"todo":352,"unpublished":358,"updatedAt":352,"__hash__":367},"pages/2026-07/2026-07-05/dev-env-codex-review-and-statusline.md","CodexレビューをサブPCで再現する条件と、Claude Codeステータスラインの仕組みを調べた",{"type":7,"value":8,"toc":335},"minimark",[9,13,16,19,24,28,31,34,37,40,53,56,69,108,111,121,127,130,166,170,173,184,188,191,194,197,204,226,229,232,235,242,248,251,254,257,283,286,328,331],[10,11,12],"p",{},"母艦PCで組み上げた開発環境が、いつの間にか「母艦でしか動かないもの」になっていないか。今日はその不安を2つ潰した。ひとつはCodexによるレビュー、もうひとつはターミナル下部に出しているステータスライン。どちらも「この便利機能、サブPCに引っ越したら再現できるんだっけ？」という疑問から始まって、Claude Codeに実環境を調べさせて答えを出した。",[10,14,15],{},"計画書や記事を書いたあと、Codex（GPT系）にセカンドオピニオンを取るのを習慣にしている。この「Codexレビュー」を別のサブPCのClaude Codeからも呼べるのか、そもそも今どういう設定で動いているのかが曖昧だったので、はっきりさせておきたかった。",[10,17,18],{},"引っ越しの当日に慌てるより、動いている今のうちに再現条件を言葉にしておきたい。そういう先送りしがちな棚卸しを、今日まとめて片付けることにした。",[20,21,23],"h2",{"id":22},"小ネタ1-codexレビューをサブpcのclaude-codeで動かせるか","小ネタ1: CodexレビューをサブPCのClaude Codeで動かせるか",[25,26,27],"h3",{"id":27},"知りたかったこと",[10,29,30],{},"疑問は具体的だった。サブPCのClaude Codeに「これレビューして」と頼んだとき、Codexが動く条件は何か。頭の中では「CLIがダウンロードされていて、レビュー用のスキルかプラグイン、名前は忘れたけどそれが入っていれば動くんじゃないか」くらいの解像度しかなかった。プラグインなのかスキルなのか、認証はどう引き継ぐのか、そのあたりが宙ぶらりんだった。",[10,32,33],{},"「なんとなくこうだった気がする」で別PCに移ると、いざ本番でレビューが空振りする。だから記憶ではなく、母艦PCの実物の構成をClaude Codeに調べさせて、再現手順まで固めさせることにした。",[25,35,36],{"id":36},"実環境で調べさせたこと",[10,38,39],{},"Claude Codeに母艦PCの現状構成を確認させた。見てほしかったのは3点。",[41,42,43,47,50],"ul",{},[44,45,46],"li",{},"Codexレビューの実体は何を叩いているのか（コマンドか、スキルか、プラグインか）",[44,48,49],{},"認証はどの方式か（トークンファイルの共有か、各PCでのログインか）",[44,51,52],{},"プラグインやスキルは必須の前提なのか",[25,54,55],{"id":55},"分かったこと",[10,57,58,59,68],{},"結論はシンプルだった。",[60,61,62,63,67],"strong",{},"Codex CLIが入っていて ",[64,65,66],"code",{},"codex login"," が済んでいれば、サブPCのClaude Codeでもそのままレビューを頼める。"," レビュー本体がやっているのは、要するにこれ1行を叩くことだった。",[70,71,76],"pre",{"className":72,"code":73,"language":74,"meta":75,"style":75},"language-bash shiki shiki-themes vitesse-light vitesse-light","codex exec -m gpt-5.5 \"このプランをレビューして。致命的な点だけ指摘して: {対象ファイルのパス}\"\n","bash","",[64,77,78],{"__ignoreMap":75},[79,80,83,87,91,95,98,102,105],"span",{"class":81,"line":82},"line",1,[79,84,86],{"class":85},"senZ8","codex",[79,88,90],{"class":89},"sdGka"," exec",[79,92,94],{"class":93},"snbK4"," -m",[79,96,97],{"class":89}," gpt-5.5",[79,99,101],{"class":100},"sMJiu"," \"",[79,103,104],{"class":89},"このプランをレビューして。致命的な点だけ指摘して: {対象ファイルのパス}",[79,106,107],{"class":100},"\"\n",[10,109,110],{},"つまりレビューの正体は「Claude CodeがCodex CLIをコマンドとして呼んでいる」だけで、プラグインもスキルも必須ではない。手元のスキルは呼び出しを楽にするラッパーであって、なくてもコマンドを直接叩けば同じことができる。これが分かって、サブPCへの引っ越しがぐっと軽くなった。",[10,112,113,114,117,118,120],{},"引っかかったのは認証だった。母艦の ",[64,115,116],{},"auth.json"," をサブPCにコピーして済ませたくなるが、そこは各PCで ",[64,119,66],{}," を通すのが正解。トークンファイルの横流しではなく、PCごとにログインし直す前提で運用する。ここを勘違いすると、サブPCで初回レビューを叩いた瞬間に認証エラーで止まる。",[10,122,123,124,126],{},"考えてみれば、認証情報はPCという境界の内側で完結させておくほうが後腐れがない。トークンファイルを持ち歩くと、どのPCにいつのトークンを撒いたか分からなくなるし、片方を処分するときに消し忘れる。各PCで ",[64,125,66],{}," を踏む一手間を、引っ越しの初期化コストとして受け入れるのが結局いちばん楽だと腹落ちした。",[10,128,129],{},"サブPCでの再現に必要なものを、最小構成で並べるとこうなる。",[41,131,134,144,156],{"className":132},[133],"contains-task-list",[44,135,138,143],{"className":136},[137],"task-list-item",[139,140],"input",{"disabled":141,"type":142},true,"checkbox"," Codex CLI をインストールする",[44,145,147,149,150,152,153,155],{"className":146},[137],[139,148],{"disabled":141,"type":142}," そのPCで ",[64,151,66],{}," を通す（",[64,154,116],{}," のコピーで済ませない）",[44,157,159,161,162,165],{"className":158},[137],[139,160],{"disabled":141,"type":142}," あとはClaude Codeに ",[64,163,164],{},"codex exec -m gpt-5.5 \"...\""," を叩かせるだけ（プラグイン・スキルは任意）",[25,167,169],{"id":168},"おまけ-クソリプ回避の一文はどこに入れていたか","おまけ: 「クソリプ回避」の一文はどこに入れていたか",[10,171,172],{},"調べているうちに、もうひとつ思い出した。Codexは放っておくと瑣末な指摘（本質的でない、いわゆるクソリプ）を返してくるので、「瑣末な点は指摘するな、致命的な点だけ挙げろ」という一文を必ず添えている。この設定、フックか何かで自動注入していた気がしていたが、記憶を辿ると違った。",[10,174,175,176,179,180,183],{},"正体は、",[60,177,178],{},"レビュー依頼のプロンプト文そのものに直書きしている","だけだった。フックのような仕込みではなく、",[64,181,182],{},"codex exec"," に渡す指示文の中に毎回その一文を入れている。だからサブPCで再現するときも、特別な設定ファイルを移す必要はなく、レビュー依頼の文面にこの一言を足せばそのまま効く。仕組みが単純なぶん、移設で壊れる余地がないのがありがたい。",[20,185,187],{"id":186},"小ネタ2-今どのリポジトリにいるかを出すステータスラインの設定","小ネタ2: 「今どのリポジトリにいるか」を出すステータスラインの設定",[25,189,27],{"id":190},"知りたかったこと-1",[10,192,193],{},"ターミナルの下に、今いるリポジトリ名などを出すステータスラインを常用している。ただ、これをどう設定して出していたのか自分でも思い出せなくなっていた。スクリーンショットをClaude Codeに見せて、「この表示ってどういう設定で出しているんだっけ」と素朴に聞くところから始めた。",[25,195,196],{"id":196},"調べさせたこと",[10,198,199,200,203],{},"Claude Codeに設定の入口を辿らせた。分かったのは、これがClaude Codeの ",[60,201,202],{},"statusLine 設定","で、自作のPythonスクリプトを動かしている2段構成だということ。",[41,205,206,220],{},[44,207,208,211,212,215,216,219],{},[60,209,210],{},"入口",": ",[64,213,214],{},"~/.claude/settings.json"," の ",[64,217,218],{},"statusLine"," 項目。ここで表示に使うスクリプトを指定している",[44,221,222,225],{},[60,223,224],{},"本体",": 指定した自作Pythonスクリプトが、リポジトリ名などを組み立ててステータスラインの文字列を返す",[10,227,228],{},"「設定ファイルが表示スクリプトを呼び、スクリプトが中身を描く」という素直な2段構えで、Claude Code標準のstatusLineの仕組みにそのまま乗っているだけだった。凝ったことは何もしていない。",[25,230,55],{"id":231},"分かったこと-1",[10,233,234],{},"もうひとつ確かめたかったのが、このステータスラインのPythonスクリプト一式をどこで管理しているか。母艦にしかないローカルファイルだと、サブPCで再現できない。",[10,236,237,238,241],{},"調べさせたら、",[64,239,240],{},"~/.claude"," ディレクトリ自体がまるごと git リポジトリになっていて、GitHub上のdotfilesリポジトリで追跡していた。ステータスラインのPythonスクリプトもそこにコミット済みで、未コミットの差分はなし。旧版らしきシェルスクリプト版も同じリポジトリに残っていた。",[10,243,244,245,247],{},"これで安心した。設定もスクリプトも ",[64,246,240],{}," 配下にあってgit管理されているので、サブPCでdotfilesをクローンすれば、ステータスラインの表示までそっくり引き継げる。バラバラのローカルファイルではなく、リポジトリ1つに畳んであったのが今日いちばんの収穫だった。",[10,249,250],{},"ここでも構図はCodexレビューと同じだった。表示という「見た目の便利機能」でも、実体をたどれば設定ファイルとスクリプトのペアに過ぎず、それがgitに乗っていれば再現は clone 一発。逆に言えば、gitに乗っていない自作機能こそ、サブPCで真っ先に消える。今日のうちに「乗っている／乗っていない」を目視で確かめておけたのが効いた。",[20,252,253],{"id":253},"今日の学び",[10,255,256],{},"2つとも「便利機能がPC固有になっていないか」という同じ不安から始まって、同じ結論に着地した。",[41,258,259,271,280],{},[44,260,261,264,265,267,268,270],{},[60,262,263],{},"Codexレビュー",": 実体は ",[64,266,182],{}," を叩くだけ。プラグインもスキルもなくていい。移設で唯一気をつけるのは、認証を各PCで ",[64,269,66],{}," し直すこと",[44,272,273,276,277,279],{},[60,274,275],{},"ステータスライン",": Claude Code標準のstatusLineに自作Pythonスクリプトを噛ませているだけ。設定もスクリプトも ",[64,278,240],{}," のdotfilesリポジトリに入っているので、クローンすれば再現できる",[44,281,282],{},"「なんとなく動いている環境」を、記憶ではなく実物で棚卸しさせておくと、サブPCへの引っ越しが怖くなくなる。凝った仕組みほど再現条件を1回言語化しておく価値がある",[10,284,285],{},"次にサブPCへ移設するときに、今日の棚卸しを1枚のチェックリストに畳んでおく。",[41,287,289,298,303,313,319],{"className":288},[133],[44,290,292,294,295,297],{"className":291},[137],[139,293],{"disabled":141,"type":142}," dotfiles（",[64,296,240],{},"）をクローンする（settings.jsonとステータスラインのスクリプトが一緒に付いてくる）",[44,299,301,143],{"className":300},[137],[139,302],{"disabled":141,"type":142},[44,304,306,149,308,152,310,312],{"className":305},[137],[139,307],{"disabled":141,"type":142},[64,309,66],{},[64,311,116],{}," はコピーしない）",[44,314,316,318],{"className":315},[137],[139,317],{"disabled":141,"type":142}," ステータスラインが表示されるか、ターミナルを開いて目視する",[44,320,322,324,325,327],{"className":321},[137],[139,323],{"disabled":141,"type":142}," 適当なファイルで ",[64,326,164],{}," を一度叩き、レビューが返ってくるか確かめる",[10,329,330],{},"ここまで確認できれば、母艦とサブPCの体験差はほぼ消える。便利機能を作った日ではなく、それを別PCで再現できると確かめた日のほうが、あとから効いてくる気がした。",[332,333,334],"style",{},"html pre.shiki code .senZ8, html code.shiki .senZ8{--shiki-default:#59873A;--shiki-dark:#59873A}html pre.shiki code .sdGka, html code.shiki .sdGka{--shiki-default:#B56959;--shiki-dark:#B56959}html pre.shiki code .snbK4, html code.shiki .snbK4{--shiki-default:#A65E2B;--shiki-dark:#A65E2B}html pre.shiki code .sMJiu, html code.shiki .sMJiu{--shiki-default:#B5695977;--shiki-dark:#B5695977}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":75,"searchDepth":336,"depth":336,"links":337},2,[338,345,350],{"id":22,"depth":336,"text":23,"children":339},[340,342,343,344],{"id":27,"depth":341,"text":27},3,{"id":36,"depth":341,"text":36},{"id":55,"depth":341,"text":55},{"id":168,"depth":341,"text":169},{"id":186,"depth":336,"text":187,"children":346},[347,348,349],{"id":190,"depth":341,"text":27},{"id":196,"depth":341,"text":196},{"id":231,"depth":341,"text":55},{"id":253,"depth":336,"text":253},"dev",null,"いつも使うCodexレビューを別のサブPCのClaude Codeでも動かせるか、必要なもの（Codex CLIとcodex login）を実環境で確認した。あわせてターミナルに今どのリポジトリにいるかを出すステータスライン設定の中身も調べたメモ。","md",{},"/dev-env-codex-review-and-statusline","claude-code-tools",false,"2026-07-05T00:00:00.000Z",{"title":5,"description":353},"2026-07/2026-07-05/dev-env-codex-review-and-statusline",[363,364,365,275,366],"Claude Code","Codex","環境構築","開発環境","sl-arQ_-id-LDX57nrSl-btC3QVjgrgzk8ehA3x-nUQ",[],"https://log.eurekapu.com/og/blog/dev-env-codex-review-and-statusline.png?v=2026-07-05T00%3A00%3A00.000Z&title=Codex%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E3%82%92%E3%82%B5%E3%83%96PC%E3%81%A7%E5%86%8D%E7%8F%BE%E3%81%99%E3%82%8B%E6%9D%A1%E4%BB%B6%E3%81%A8%E3%80%81Claude%20Code%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%9F&author=Kei%20Komatsu&sig=bc7080f943efa4dd",1783483676027]