本文へスキップ
resq's blog
戻る

Claude Code と Codex CLI 相互コマンドチートシート

更新日:

Claude Code と Codex を両方使っているとどっちがどっちの書き方だったか混乱するのでチートシートを作った。


0. 最小対応表

Claude CodeCodex CLI
スキルの起動/name$name($ で一覧)
指示ファイルCLAUDE.mdAGENTS.md
設定ファイルsettings.json(コメント不可の JSON)config.toml(TOML)
非対話実行claude -p "..."codex exec "..."
権限permission mode 1 つで決まるsandbox・approval・trust_level の 3 つで決まる
一時上書き--settings '<json>'-c key=value

/model はどちらにもある。$ はスキル起動の記法で、スラッシュコマンドの代わりではない。


1. スラッシュコマンドの対応

両方に存在するコマンド

やりたいことClaude CodeCodex CLI補足
モデル・推論強度/model/modelCodex は 1 画面で effort も選ぶ
権限設定/permissions/permissions中身は別物(§3)
差分レビュー/review/reviewClaude Code 側は /code-review の別名
会話を圧縮/compact/compact
一行要約/recap/recap
新しいチャット/clear/newCodex の /clear は端末クリア + 新チャット
セッション再開/resume/resume
複製して分岐/fork/fork
脇道の質問/btw/side・/btw
長期ゴール/goal/goal
指示ファイル生成/init/initCLAUDE.md / AGENTS.md
スキル一覧/skills/skills・$
MCP/mcp/mcp(verbose で詳細)
フック/hooks/hooks
プラグイン/plugin/plugins単複が違う
状態・トークン/status/status
利用量/usage/usage
git diff/diff/diffCodex は untracked も
ファイル参照@path/mention
IDE 連携/ide/ide
Vim/vim/vim
作業ディレクトリ/cd/cd(/pwd で確認)
テーマ/theme/theme
ステータスライン/statusline/statusline
Markdown 書き出し/export/export
直前をコピー/copy/copy
Plan モード/plan/plan
エージェント一覧/agents/agentsCodex はデーモン上の全セッション
サブエージェント(/agents に含む)/subagentsCodex では別コマンド
名前変更/rename/rename
設定取り込み/import/importCodex の /import は Claude Code から
フィードバック/feedback・/bug/feedback
ログアウト/logout/logout
終了/exit/exit・/quit

Claude Code だけに存在するコマンド

コマンド何をするか
/contextコンテキスト使用量を可視化
/cost/usage の別名
/doctorセットアップ診断と修復
/memoryCLAUDE.md と auto memory の編集
/rewind会話とコードを巻き戻す(別名 /checkpoint /undo)
/sandboxBash サンドボックスの切り替え
/security-review現ブランチの差分を脆弱性観点でレビュー
/verifyアプリを起動して変更が効いているか確認
/loop同じプロンプトを繰り返し実行
/runプロジェクトのアプリを起動
/skill-doctorスキルごとのコンテキスト消費と使用頻度
/config設定画面
/tasksバックグラウンド作業の管理(別名 /bashes)
/workflowsワークフローの進捗
/artifactsartifact を一覧・添付
/helpヘルプ

Codex CLI だけに存在するコマンド

コマンド何をするか
/archive /deleteこのセッションをアーカイブ / 完全削除して終了
/rawコピーしやすい素のスクロールバック
/personalityCodex の話し方
/pets端末のペット
/memories記憶の使用と生成の設定
/keymapTUI ショートカットの再割り当て
/experimental実験機能のトグル
/approve直前の自動レビュー却下を 1 回だけ承認
/title端末タイトルに出す項目
/debug-configどの層の設定が効いているかを表示
/ps /stopバックグラウンド端末の一覧 / 全停止
/setup-default-sandbox昇格したエージェントサンドボックス(広い権限で動く実行環境)の設定

環境によって表示されないコマンド(Codex)

コマンド出る条件
/appmacOS / Windows のみ
/sandbox-add-read-dirWindows のみ
/rollout /test-approvalデバッグビルドのみ
/copyAndroid 以外

2. 設定ファイルの場所と優先順位

Claude CodeCodex CLI
ホーム~/.claude/(CLAUDE_CONFIG_DIR)~/.codex/(CODEX_HOME)
形式settings.json(// コメント・末尾カンマは構文エラー)config.toml
ユーザー設定~/.claude/settings.json~/.codex/config.toml
プロジェクト共有.claude/settings.json<repo>/.codex/config.toml(各階層)
個人のプロジェクト設定.claude/settings.local.json(分離した置き場なし)
ディレクトリの信頼ワークスペースの信頼[projects."<絶対パス>"] の trust_level
組織の強制managed-settings.json / MDM/etc/codex/requirements.toml・クラウド設定・macOS 管理プロファイル
指示ファイルCLAUDE.mdAGENTS.md
プロファイルなし-p <name> → $CODEX_HOME/<name>.config.toml
一時上書き--settings '<json>'・環境変数-c key=value(TOML として解釈)
読み込みを絞る--bareexec --ignore-user-config / exec --ignore-rules

設定の読み込み順と優先順位

同じ設定を 2 か所に書いたときは、優先度が高いほうが採用される。

Claude Code

優先度設定の場所
高managed-settings.json / MDM / claude.ai コンソール
claude --settings '<json>'
.claude/settings.local.json
.claude/settings.json
低~/.claude/settings.json

Codex CLI

優先度層設定の場所
高プロジェクトcwd にいちばん近い .codex/config.toml
プロジェクト親をさかのぼった .codex/config.toml(cwd に近いほど優先)
profile$CODEX_HOME/<name>.config.toml(-p <name> 指定時)
user$CODEX_HOME/config.toml
低system/etc/codex/config.toml

プロジェクト層は、そのディレクトリが untrusted のときは読み込まれても無効化される。実際にどう重なったかは /debug-config で見られる。

スキルの置き場と起動記法

Claude CodeCodex CLI
個人~/.claude/skills/<name>/SKILL.md~/.agents/skills/、$CODEX_HOME/skills/
プロジェクト.claude/skills/<name>/SKILL.md<repo>/.agents/skills/、<repo>/.codex/skills/
同梱バンドルスキル~/.codex/skills/.system/
旧式.claude/commands/<name>.md(プラグインへ移行)
起動/name$name

Codex は .claude/skills/ を読まず、Claude Code は .agents/skills/ を読まない。Codex から何が見えているかは codex debug prompt-input の <skills_instructions> に出る。


3. 権限モデル

やりたいことClaude CodeCodex CLI
読み取り以外は確認する--permission-mode manual(確認すれば書ける)--sandbox read-only(確認しても書けない)
ファイル編集を確認なしで通す--permission-mode acceptEdits--sandbox workspace-write と --ask-for-approval never の両方(編集だけを通す設定は無く、これがいちばん近い)
自動チェックに任せて通す--permission-mode auto--approve-for-me(workspace-write で自動レビューにかける)
確認を出さない--permission-mode dontAsk(事前承認したツールだけ動く)--ask-for-approval never(危険と判定されたものは確認ではなく拒否)
隔離環境で全部飛ばす--dangerously-skip-permissions--dangerously-bypass-approvals-and-sandbox
書き込める場所を足す--add-dir--add-dir
特定のコマンドを許す・禁じるsettings.json の permissions.allow / deny~/.codex/rules/*.rules

Codex では sandbox と approval が独立して効く。--sandbox を緩めても確認は消えないし(対話版の既定は on-request)、--ask-for-approval never にしても書き込める範囲は広がらない。両方を指定して初めて「書けて、かつ聞かれない」になる。ただし --ask-for-approval は対話版だけのフラグで、codex exec に渡すと落ちる(exec は既定が never なので --sandbox だけ指定すればよい)。

Claude Code の permission mode

モード確認なしで動くもの
default読み取りのみ(UI と --permission-mode では manual)
acceptEdits+ ファイル編集・mkdir touch mv cp 等
plan読み取り(auto mode があれば分類器が承認したコマンド)
autoすべて(バックグラウンドの安全チェック付き)
dontAsk事前承認したツールのみ
bypassPermissionsすべて(隔離環境専用)

同じ claude でも、プランとクライアントによって開始モードが変わる。

起動する環境開始モード
Pro / Max / Team プランのターミナル・VS Code 拡張auto
Enterprise プラン・API キーdefault
claude -p(非対話)・Agent SDKdefault

明示するなら起動時に渡す。

claude --permission-mode acceptEdits
# ユーザー設定の permissions.defaultMode でも変えられる

Codex の 3 つの設定

設定決めること
sandbox_modeファイルとネットワークにどこまで触れるか(書き込める場所・通信の可否)
approval_policy実行前に人に確認を出すか(出さない設定なら、危険と判定されたコマンドは確認ではなく拒否)
trust_levelそのディレクトリでの sandbox_mode の既定値(明示指定が無いときだけ効く)

sandbox_mode(触れる範囲)

--sandbox意味
read-only読むだけ。ネットワーク遮断
workspace-writecwd と writable_roots に書ける。ネットワークは既定で遮断(sandbox_workspace_write.network_access = true で開く)
danger-full-access制限なし

approval_policy(人に確認を出すか)

approval_policy意味
on-request既定。モデルが必要と判断したときに聞く
never聞かない。codex exec はこれが既定
untrusted内部ポリシー。trust_level から自動選択され、直接は書けない
granular承認フローごとに個別指定

--ask-for-approval で選べるのは on-request と never のみ。

trust_level(sandbox の既定値を決める)

--sandbox も config.toml の sandbox_mode も指定していないとき、config.toml の [projects."<絶対パス>"] にそのディレクトリの trust_level が書かれているかどうかで既定が決まる(Linux)。

trust_level の書かれ方既定の sandbox
trustedworkspace-write
untrustedworkspace-write(値が何であれ、書かれていれば上がる)
その項目自体が無いread-only

sandbox_mode を書いてあればそちらが優先。いま実際にどうなっているかは codex debug prompt-input の <permissions instructions> に出る。

コマンド単位の許可ルール

Claude CodeCodex CLI
置き場settings.json の permissions.allow / ask / deny~/.codex/rules/*.rules(execpolicy)
書き方Bash(git push *)prefix_rule(pattern=[...], decision=...)
判定値allow / ask / denyallow / prompt / forbidden
allow の意味確認なしで実行サンドボックスの外で実行
テストなしmatch / not_match を同じ宣言に書ける

Codex 側の書き方の例。pnpm test と pnpm db:reset は禁じて、pnpm build と pnpm lint は通す。match / not_match に例を並べておくと、狙いどおりに効くかを同じ宣言の中で確かめられる。

prefix_rule(
    pattern = ["pnpm", ["test", "test:run", "db:reset"]],
    decision = "forbidden",
    justification = "テスト実行は委譲元の責務",
    match = ["pnpm test", "pnpm db:reset"],
    not_match = ["pnpm build", "pnpm lint"],
)

Codex の照合規則では、コマンドは | && ; (...) で分割され、各セグメントが独立に判定される。リダイレクト・変数展開・ワイルドカードを含むと分割できず、["bash","-lc","<全体>"] としてルールにかけられる(まず一致しない)。

自分は Claude Code だけ defaultMode を auto にして、deny に rm -rf と Slack・Gmail 系の MCP を並べている。Codex は config.toml を置いていないので、何も指定しなければ read-only から始まる。


4. CLI フラグとサブコマンド

やりたいことClaude CodeCodex CLI
非対話で実行claude -p "..."codex exec "..."
応答をファイルへ(--output-format で加工)exec -o <file>
JSON で流す--output-format stream-jsonexec --json
直前を継続(対話)claude -ccodex resume --last
選んで再開(対話)claude --resumecodex resume
非対話を再開claude -p --resume <id>codex exec resume --last "<指示>"
モデル指定--model-m / --model
作業ディレクトリなし-C / --cd
書き込み許可を足す--add-dir--add-dir
権限を飛ばす--dangerously-skip-permissions--dangerously-bypass-approvals-and-sandbox
診断claude doctorcodex doctor
MCP 管理claude mcpcodex mcp
コードレビュー/code-review・claude ultrareviewcodex review / codex exec review
バックグラウンドclaude --bg(起動)・claude agents(一覧)codex agents(一覧・閲覧)
git 管理外で動かす(制限なし)exec --skip-git-repo-check
セッションを残さないなしexec --ephemeral
機能フラグなしcodex features list(実効値)

exec と書いた行は codex exec 専用(対話版に渡すと unexpected argument)。逆に -a / --ask-for-approval と --search は exec に無い。


この記事をシェア:

前の記事
Claude Code アップデートまとめ (2026-09-06 〜 2026-09-12)
次の記事
弐寺DP レポ (2026-08-30 〜 2026-09-05)