Codex: Codex CLI Model Selection
Last updated: 2026-08-31
Model selection in the CLI is more flexible with more customization options. This lesson focuses on CLI model-related configuration.
📋 Prerequisites: Understanding Codex model selection basics (see Lesson 19)
1. What You Will Learn
- CLI model parameters
- Multi-model switching
- Cost optimization in practice
- Model performance comparison
2. CLI Model Parameters
BASH
# Specify model
codex --model o3
# Specify model + temperature
codex --model gpt-5-codex --temperature 0.2
# Specify model + max tokens
codex --model o3 --max-tokens 8192
# List available models
codex --list-models
Parameter Descriptions
| Parameter | Description | Recommended Value |
|---|---|---|
--model |
Model name | Choose by task |
--temperature |
Creativity (0-1) | 0.1-0.3 (for code) |
--max-tokens |
Max output | 4096-8192 |
--top-p |
Sampling range | 0.9 (default) |
3. Multi-Model Switching
(1) Config File Switching
TOML
# ~/.codex/config.toml
model = "gpt-5-codex" # Default model
# .codex/config.toml (project-level)
model = "deepseek-coder" # Project override
(2) Environment Variable Switching
BASH
# Temporary switch
CODEX_MODEL=o3 codex "Design microservice architecture"
# DeepSeek
export OPENAI_API_KEY="sk-deepseek-xxx"
export OPENAI_BASE_URL="https://api.deepseek.com"
codex --model deepseek-coder
(3) Alias Quick Switch
BASH
# ~/.zshrc or ~/.bashrc
alias codex-o3='codex --model o3'
alias codex-fast='codex --model o4-mini'
alias codex-deep='export OPENAI_API_KEY="sk-deepseek-xxx"; export OPENAI_BASE_URL="https://api.deepseek.com"; codex --model deepseek-coder'
# Usage
codex-o3 "Design system architecture"
codex-fast "Fix lint errors"
codex-deep "Write unit tests"
▶ Example 1: Alice's Multi-Model Workflow
BASH
# Alice's alias configuration
alias codex-draft='codex --model o4-mini --temperature 0.5' # Drafting
alias codex-code='codex --model gpt-5-codex --temperature 0.2' # Coding
alias codex-think='codex --model o3 --temperature 0.1' # Deep thinking
# Usage
codex-draft "Quickly generate API skeleton"
codex-code "Implement user registration feature"
codex-think "Design distributed caching solution"
4. Cost Optimization in Practice
(1) Tiered Strategy
| Task Level | Model | Cost/Task | Scenario |
|---|---|---|---|
| L0 | o4-mini | $0.001 | Formatting, adding comments |
| L1 | deepseek-coder | ¥0.01 | Bug fix, add feature |
| L2 | gpt-5-codex | $0.05 | Refactoring, API development |
| L3 | o3 | $0.30 | Architecture design, complex algorithms |
(2) Auto Downgrade
BASH
#!/bin/bash
# smart-codex.sh - Intelligent model selection
TASK="$1"
# Simple tasks use cheaper models
if echo "$TASK" | grep -qiE "lint|format|comment|typo"; then
codex --model o4-mini "$TASK"
elif echo "$TASK" | grep -qiE "fix|bug|add feature"; then
codex --model gpt-5-codex "$TASK"
elif echo "$TASK" | grep -qiE "architect|design|migrate|refactor"; then
codex --model o3 "$TASK"
else
codex --model gpt-5-codex "$TASK"
fi
▶ Example 2: Bob's Monthly Cost
TEXT
📖 Display only
# Bob's task distribution (200 tasks/month)
L0 (30%): o4-mini → 60 × $0.001 = $0.06
L1 (40%): deepseek-coder → 80 × ¥0.01 = ¥0.80 ≈ $0.11
L2 (25%): gpt-5-codex → 50 × $0.05 = $2.50
L3 (5%): o3 → 10 × $0.30 = $3.00
Total: ~$5.67/month
If all o3: ~$60/month
Savings: 90%
5. Model Performance Benchmarks
(1) Test Methodology
| Test Item | Description |
|---|---|
| Code Generation | Generate REST API endpoint |
| Bug Fix | Fix null pointer exception |
| Refactoring | Convert Class components to Hooks |
| Review | Security vulnerability scan |
(2) Results Comparison
| Model | Code Gen | Bug Fix | Refactor | Review | Speed |
|---|---|---|---|---|---|
| o3 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 🐢 |
| gpt-5-codex | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 🏃 |
| gpt-4o | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 🏃 |
| o4-mini | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⚡ |
| deepseek-coder | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 🏃 |
❓ FAQ
Q How do I check the currently used model in CLI?
A Run
codex --show-config or use /config command in session.Q What temperature should I set?
A For code generation, 0.1-0.3 (more deterministic); for documentation and creative work, 0.5-0.7 (more flexible).
Q How large should max-tokens be?
A 2048 for simple changes, 4096-8192 for complex refactoring, possibly larger for very long docs. Too small truncates output.
Q Can I use full API model names instead of aliases?
A Yes. Full names like
--model gpt-5-codex-2026-08-28 are also supported.Q Are CLI and App results identical with the same model?
A The underlying model is the same, so results are equivalent. But the App has additional UI optimization and context management.
📖 Summary
- CLI model parameters:
--model/--temperature/--max-tokens - Multi-model switching: config files / environment variables / Aliases
- Cost optimization: tiered strategy + auto-downgrade + DeepSeek alternative
- Benchmarks: o3 is strongest but slowest, o4-mini is fastest and cheapest
📝 Exercises
- Basic (⭐): Configure Aliases for quick model switching.
- Intermediate (⭐⭐): Implement an auto-downgrade script that selects models based on task description.
- Advanced (⭐⭐⭐): Benchmark models on your common tasks, build your own model selection matrix.