この記事は2026年8月29日時点のOpenAI公式ドキュメントをもとにしています。
Codexを安全に試すたび、こんな長いコマンドを入力していませんか。
codex --sandbox read-only
1回だけなら、これで十分です。でも、READMEの要約やコード調査など「今日は読むだけ」を何度も繰り返すと、毎回オプションを思い出す小さな手間が積み重なります。
この記事で扱うのは、Codexの 名前付きconfig profile という1機能だけです。read-onlyという名前へ読み取り専用の設定を1行保存し、次から短い名前で呼び出します。
codex --profile read-only
10分後のゴールは、このコマンドでCodexを起動し、/statusで読み取り専用になっていることを自分で確認できる状態です。モデル変更やMCP設定など、ほかの設定項目には広げません。
この記事でできるようになること
この記事は、次のような方を想定しています。
- AIエージェントという言葉は聞いたことがある
- Codexをまだ使ったことがない、または起動したばかり
- ファイルを変更させず、まずは「読む仕事」から試したい
- 長い起動オプションを毎回入力したくない
AIエージェント は、質問へ答えるだけでなく、目的に合わせてファイルを読み、手順を考え、許された範囲でコマンドを使って作業を進めるAIです。Codexは、開発作業を手伝うAIエージェントです。
CLI は「Command Line Interface」の略で、ボタンではなく文字を入力して操作する方式です。その文字を入力するアプリが ターミナル です。macOSなら「ターミナル」、WindowsならPowerShellなどがあります。
今回は、AIエージェントへ最初から広い権限を渡しません。練習用READMEを読ませる目的に合わせ、ファイルを書き換えられない範囲で起動します。
config profileとは何か
設定ファイル は、アプリの動き方を文字で保存するファイルです。Codexでは、普段の個人設定を~/.codex/config.tomlへ置けます。
TOML は、項目 = 値のように設定を書く形式です。今回書くのは、次の1行だけです。
sandbox_mode = "read-only"
profile は、設定へ名前を付けて必要な時だけ重ねる仕組みです。たとえるなら、普段の設定がいつもの服装で、profileは「今日は読むだけ」という上着です。必要な起動だけ、その上着を選びます。
OpenAIの公式Advanced Configurationでは、profileごとに次の形式のファイルを作り、--profile profile-nameで選ぶと説明されています。
~/.codex/profile-name.config.toml
今回なら、profile名はread-onlyなので、ファイル名はこうなります。
~/.codex/read-only.config.toml
起動コマンドはこちらです。
codex --profile read-only
ここで大事なのは、read-only.config.tomlを作っただけでは、すべての起動へ自動適用されないことです。--profile read-onlyを付けた起動で、この設定が選ばれます。
先に結論: 今回作るもの
完成形は、次の小さな構成です。
ホームフォルダ
└── .codex
└── read-only.config.toml
練習フォルダ
└── codex-profile-practice
├── .git
└── README.md
profile fileの中身は1行だけです。
sandbox_mode = "read-only"
練習用READMEには、次の情報を書きます。
# Practice Project
Status: ready
Codexをprofile付きで起動し、READMEからStatusの値だけを答えてもらいます。最後にREADMEが変わっていないことも確認します。
事前準備: Codex CLIを起動できるようにする
すでにcodex --versionでバージョンが表示される方は、次の章へ進んでください。
通常のターミナルで確認します。
codex --version
codex-cliとバージョン番号が出れば準備できています。筆者環境では2026年8月29日に次を確認しました。
codex-cli 0.150.1
バージョン番号は更新で変わるため、同じ数字でなくても問題ありません。
command not foundと表示される場合は、公式CLIページにある方法でインストールします。npmを使える環境では次です。
npm install -g @openai/codex
インストール後、通常のターミナルで起動します。
codex
初回は画面に沿ってサインインしてください。認証コード、APIキー、パスワードは、記事コメントや第三者へ渡さないようにします。
10分でread-only profileを作る
ここからが本題です。既存の仕事用リポジトリではなく、練習用フォルダを使います。
手順1: 練習用READMEを作る
macOS / Linux / WSLでは、通常のターミナルへ次を貼り付けます。
mkdir -p ~/codex-profile-practice
cd ~/codex-profile-practice
git init
printf '# Practice Project\n\nStatus: ready\n' > README.md
cat README.md
最後に次が表示されれば準備完了です。
# Practice Project
Status: ready
Windows PowerShellでは次です。こちらは筆者環境では動作未確認です。
New-Item -ItemType Directory -Force "$HOME/codex-profile-practice" | Out-Null
Set-Location "$HOME/codex-profile-practice"
git init
"# Practice Project`n`nStatus: ready" | Set-Content -Encoding utf8 README.md
Get-Content README.md
リポジトリ は、ソースコードや変更履歴をまとめて置く作業場所です。今回はgit initで、練習フォルダをGitリポジトリにしています。Gitの詳しい使い方は本記事の主題ではないので、ここでは作業場所を用意する1コマンドとして使います。
手順2: 既存のprofile fileがないか確認する
ここは安全のために省かないでください。同じ名前のファイルがすでにあれば、いきなり上書きせず中身を確認します。
macOS / Linux / WSLの通常ターミナルで実行します。
test -e ~/.codex/read-only.config.toml && echo "already exists" || echo "not found"
not foundなら、この後に新規作成できます。already existsなら、次で内容を確認してください。
sed -n '1,80p' ~/.codex/read-only.config.toml
見覚えのある既存設定が入っている場合は、本記事のコマンドで上書きしません。reading-practiceなど別のprofile名を選び、ファイル名と起動時の名前をそろえてください。
Windows PowerShellでは次で確認します。
$ProfileFile = Join-Path $HOME ".codex/read-only.config.toml"
Test-Path $ProfileFile
Trueなら既存ファイルがあります。次で内容を確認します。
Get-Content $ProfileFile
手順3: profile fileを1行で作る
既存ファイルがないことを確認できたら作成します。
macOS / Linux / WSLの通常ターミナルで実行します。
mkdir -p ~/.codex
printf 'sandbox_mode = "read-only"\n' > ~/.codex/read-only.config.toml
cat ~/.codex/read-only.config.toml
次の1行が表示されれば、profile fileの作成は成功です。
sandbox_mode = "read-only"
Windows PowerShellでは次です。こちらは筆者環境では動作未確認です。
$CodexDir = Join-Path $HOME ".codex"
$ProfileFile = Join-Path $CodexDir "read-only.config.toml"
New-Item -ItemType Directory -Force $CodexDir | Out-Null
'sandbox_mode = "read-only"' | Set-Content -Encoding utf8 $ProfileFile
Get-Content $ProfileFile
sandbox_modeは、Codexが生成したコマンドをどの範囲で動かすか決める設定です。read-onlyではファイルの読み取りはできますが、書き込みは許可されません。
手順4: profileを選んでCodexを起動する
練習用フォルダへ戻り、通常のターミナルで実行します。
cd ~/codex-profile-practice
codex --profile read-only
短いオプションも使えます。
codex -p read-only
-pは--profileの短い書き方です。最初は意味が見える--profileを使う方が分かりやすいかなと思います。
手順5: /statusで設定を確認する
ここからは、通常のターミナルではなく 起動したCodexの入力欄 です。次を入力します。
/status
OpenAIの公式ドキュメントでは、/statusは現在のモデル、承認方針、書き込み可能な場所など、セッションの設定を表示するコマンドです。
表示の文言はバージョンで変わる可能性があります。read-onlyや、書き込み可能な場所がないことを示す表示を確認してください。意図と違う場合は、いったん/exitで終了し、profile名とファイル名を見直します。
手順6: READMEを読ませる
続けてCodexの入力欄へ、次をそのまま貼り付けます。
README.mdを読み、Statusの値だけを返してください。ファイルは変更しないでください。
期待する回答はこちらです。
ready
回答を確認したら、Codexの入力欄で終了します。
/exit
通常のターミナルへ戻ったら、READMEをもう一度確認します。
cat README.md
READMEが最初と同じなら成功です。表示は次の3行のままです。
# Practice Project
Status: ready
成功したか確認する
次の4点がそろえば、今日の体験は完了です。
-
~/.codex/read-only.config.tomlに設定が1行ある -
codex --profile read-onlyでCodexを起動できた -
/statusで読み取り専用の境界を確認できた - READMEの
readyを読めて、ファイルは変わっていない
筆者はCodex CLI 0.150.1で--profileオプションを確認し、隔離した検証用CODEX_HOMEへ同じprofile fileを置いて、codex --profile read-only debug prompt-inputを実行しました。生成された実行条件にsandbox_modeがread-onlyとして反映されるところまで確認しています。
一方、この記事の対話手順である/status表示とREADMEへの回答取得は、筆者環境では動作未確認です。コマンド名と期待される挙動は、2026年8月29日にOpenAI公式ドキュメントと照合しています。
なぜprofileが便利なのか
価値は、設定を増やすことではありません。同じ境界を、短い名前で選び直せることです。
profileがない場合は、読む仕事のたびに次を入力します。
codex --sandbox read-only
profileを作った後は、次の名前で呼び出せます。
codex --profile read-only
文字数の差は大きくありません。でも、何度も使う設定では「正確な値を毎回思い出す」より「用途の名前を選ぶ」方が迷いにくくなります。
さらに、profile fileは普段の~/.codex/config.tomlへ重ねて読み込まれます。公式Config basicsによると、CLIフラグ、プロジェクト設定、profile、個人設定、システム設定、組み込み既定値という優先順位があります。今回のprofileには、普段と違う1行だけを書けば十分です。
ただし、profileは安全を自動保証する仕組みではありません。起動時に名前を選び、/statusで確認するところまでが1セットです。
つまずきポイント
1. codex: command not foundと出る
Codex CLIが未インストールか、インストール先へPATHが通っていません。まず次が動く状態へ戻ります。
codex --version
公式CLIページのインストール手順も確認してください。
2. profile not foundのようなエラーが出る
ファイル名とprofile名が一致しているか確認します。
ファイル: ~/.codex/read-only.config.toml
起動: codex --profile read-only
read_onlyとread-onlyは別の名前です。ハイフン、アンダースコア、つづりをそろえます。
3. 古い記事の[profiles.read-only]を使っている
現在の公式Advanced Configurationでは、profileごとに独立したファイルを置きます。
~/.codex/read-only.config.toml
公式ドキュメントは、Codex 0.134.0以降ではconfig.toml内の[profiles.profile-name]を--profileが読まないと説明しています。古い記法を新しく追加しないようにします。
4. profile fileを作ったのに通常起動へ反映されない
今回のprofileは、自動の既定値ではありません。起動時に明示して選びます。
codex --profile read-only
毎回の通常起動まで読み取り専用にしたい場合は、個人設定~/.codex/config.tomlへ書く方法があります。ただし、それはprofileを必要時だけ選ぶ本記事とは別の設定方針です。
5. TOMLのエラーが出る
引用符が全角になっていないか確認します。正しい1行はこちらです。
sandbox_mode = "read-only"
日本語入力中に“read-only”のような曲がった引用符へ変わると、正しく読めません。半角の"を使います。
6. /statusを通常のターミナルへ入力している
/statusはCodexを起動した後の入力欄で使うスラッシュコマンドです。
通常のターミナル: codex --profile read-only
Codexの入力欄: /status
入力場所を分けると迷いにくくなります。
7. 既存のprofile fileを上書きしてしまいそう
作成前に必ず確認します。
test -e ~/.codex/read-only.config.toml && echo "already exists" || echo "not found"
既存なら上書きせず、別名を選びます。
~/.codex/reading-practice.config.toml
codex --profile reading-practice
8. 組織のルールで設定が変わる
管理された環境では、組織のrequirements.tomlが危険な設定を禁止したり、許可する範囲を制約したりできます。個人のprofileより組織ルールを優先してください。意図した値にならない時は、/statusや/debug-configで実効設定を確認し、管理者の案内に従います。
よくある質問
profileはいくつ作ってもよいですか
公式上、名前付きprofile fileを複数作れます。ただ、最初から増やしすぎると選択肢で迷います。まずはread-onlyを1つだけ作り、繰り返し必要になった用途が見えてから増やす方が分かりやすいです。
profile名に日本語は使えますか
公式ドキュメントは、profile名に使える文字を英字、数字、ハイフン、アンダースコアとしています。本記事ではread-onlyを使います。
ファイルを編集したくなったらどうしますか
いったん/exitで終了し、目的と権限を見直します。読み取り専用のまま無理に編集しようとせず、必要な作業に合うサンドボックスを別の起動で選びます。権限を広げる時は、対象フォルダと変更内容を確認してから進めてください。
profile fileにAPIキーを書いてよいですか
書かないでください。profile fileは設定を置く場所ですが、記事例や共有リポジトリへ認証情報を入れてはいけません。認証は公式のサインイン手順や、安全な認証情報ストアを使います。
限界と、使わなくてよい条件
profileが効かない条件は、その設定を一度しか使わない時です。
1回だけREADMEを読むなら、次の方が短いです。
codex --sandbox read-only
profile fileを作る時間の方が長くなります。2回、3回と同じ境界で起動する見込みが出てからprofileへ切り出せば十分です。
もう1つの限界は、--profile read-onlyを付け忘れた起動には適用されないことです。名前を付けただけで、あらゆるCodex起動が読み取り専用になるわけではありません。回避策は単純で、起動直後に/statusを確認します。
そして、read-onlyは「AIの回答が必ず正しい」ことを保証しません。ファイルを書き換えない境界と、要約内容の正しさは別です。重要な回答はREADME原文と照合してください。
今日の最初の1歩
今日は設定大全を覚えなくて大丈夫です。
sandbox_mode = "read-only"
この1行を~/.codex/read-only.config.tomlへ置き、次の1コマンドで起動する。
codex --profile read-only
そして/statusを見る。ここまで動けば、AIエージェントへ「今日は読むだけ」という境界を、自分の名前で1つ選べた状態です。
参考リンク
- OpenAI Codex — Config basics
- OpenAI Codex — Advanced Configuration(Profiles)
- OpenAI Codex — Configuration Reference
- OpenAI Codex — CLI reference
- OpenAI Codex — Slash commands
生成AI活用エンジニア&3児のパパ。AI×開発の実践知を毎日発信しています → X