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?

Codexのconfig profileでread-only起動を保存する — 毎回の長いオプションを10分で短くする

1
Posted at

この記事は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_moderead-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_onlyread-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つ選べた状態です。

参考リンク

生成AI活用エンジニア&3児のパパ。AI×開発の実践知を毎日発信しています → X

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?