Personality "none" doesn't work anymore
Open 💬 4 comments Opened May 25, 2026 by nooblyf
What version of the Codex App are you using (From “About Codex” dialog)?
Version 26.519.41501 (3044)
What subscription do you have?
Pro
What platform is your computer?
macOS 26
What issue are you seeing?
Setting the personality in ~/.codex/config.toml file doesn't work anymore?
personality = "none"
When i check the settings from the UI it shows friendly
<img width="702" height="151" alt="Image" src="https://github.com/user-attachments/assets/fe6d823a-e75f-4403-a674-7bda23970902" />
What steps can reproduce the bug?
- Set
personality = "none"in~/.codex/config.tomlfile - Open the codex desktop app and go to Settings -> Personalization
- You'll see the personality is set to "Friendly"
What is the expected behavior?
Should see "None"
Additional information
_No response_
4 Comments
I checked current
main, and the backend path appears to preserve an explicitpersonality = "none"value.Personality::Noneis a valid lowercase config value, explicitnoneis forwarded as"none"in config overrides, and model instruction generation mapsPersonality::Noneto an empty personality message. So this does not look like a config parsing or instruction-generation issue.The mismatch looks likely to be in the UI selection surface. One concrete path is
codex-rs/tui/src/chatwidget/settings_popups.rs: the personality picker currently only builds items forFriendlyandPragmatic, even though label/description text forNonealready exists. A small fix there would be to includePersonality::Nonein the picker and update the personality popup snapshot.One caveat: #22780 is already touching personality feature gating and explicitly says users should be able to opt out with
none, so this may be better folded into that work if the PR is still active rather than sent as a standalone unsolicited PR.Then it doesn't factor it in i guess because i keep getting those retarded "You’re right to push on that", "Nice catch!", "I shouldn't have done that", "Good push back", etc. it's so frustrating.
I want to add a power-user use case for why this matters beyond the UI mismatch.
personality = "none"is a real config value in the CLI that codex accepts. On my install, invalid values are rejected with:Please expose
personality = "none"in the Codex Desktop/CLI UI and preserve it when settings are changed.AGENTS.md should be able to serve as the user-defined role/persona layer. Preset personalities are useful, but they shouldn’t be mandatory.
Confirmed this regression still exists in the current macOS Desktop release 26.727.51351 (build 6119), which is the newest build in the published Sparkle appcast as of 2026-08-03.
Reproduction
personality = "none"in a trusted project.codex/config.toml(the runtime accepts the value).turn_contextrecordspersonality: "friendly", notnone.Localization
Read-only inspection of the installed release bundle shows the Desktop frontend narrows the enum before using it:
The Personalization component also constructs only the Friendly and Pragmatic option records and visually falls back to the first option for any unlisted value. A separate status renderer treats every non-Friendly value as Pragmatic. The underlying app-server/runtime still accepts
none, so this is a Desktop frontend mismatch rather than a runtime/config-schema limitation.Documentation conflict
The current official docs say Desktop Settings should offer Friendly, Pragmatic, or None, and the config reference documents
none | friendly | pragmatic:Expected fix / regression test
noneto the Desktop validator and Personalization selector.personality = "none"value rather than falling back to Friendly.turn_context.personality == "none".This is not fixed by adding the config line alone because the current Desktop frontend filters
noneout before falling back to Friendly.