Desktop app strips documented service_tier config key from config.toml on launch
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 65/100
Research direction
Start by tracing the Desktop app's config load/save cycle for ~/.codex/config.toml and how its internal settings model handles service_tier. Reproduce the macOS launch sequence from the issue, then verify that an explicit service_tier = "default" remains in the file after launch and continues to override the model catalogue default.
Written by the indexing model from the issue text.
Description
Setting service_tier = "default" as a top-level key in config.toml (per the documented config reference, supported since PR #21697) persists correctly while the Codex Desktop app is quit. On launching the app, the key is silently removed from config.toml within seconds — the Desktop app appears to serialize its own internal settings model back to the file on load, and that model doesn't track service_tier, so it's dropped even though the CLI/engine itself supports and would honor it.
Net effect: for any model whose catalogue entry sets a non-default default_service_tier (e.g. gpt-5.6-sol → priority, displayed as "Fast"), there is no way to durably override it to default via config — the Desktop app reverts it on every launch.
Repro:
- Quit the Codex Desktop app.
- Add
service_tier = "default"to~/.codex/config.toml(top-level key). - Confirm it persists in the file while the app is quit.
- Relaunch the app.
- Re-read
config.toml— the key is gone within seconds of launch.
Versions: bundled codex-cli 0.145.0-alpha.30; client_version 0.145.0 in ~/.codex/models_cache.json. macOS.
Expected: an explicit, documented, engine-supported service_tier config value should survive the Desktop app's own config load/save cycle, letting users durably override a model catalogue's default_service_tier (and its UI label, e.g. "Fast") to default.
Actual: the Desktop app's own settings serializer silently discards the key on every launch, since its internal settings model doesn't track that field.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·