Codex Model Tray is a Windows tray app for switching Codex Desktop / Codex CLI model and provider state without hand-editing multiple Codex files.
It also includes a tray toggle for Start With Windows, so you do not need to copy the app into the Startup folder manually.
It updates these Codex surfaces together:
config.tomlauth.jsonstate_5.sqlitesessions/**/*.jsonl
It also keeps tray-side runtime files next to the app:
codex_model_tray.catalog.jsoncodex_model_tray.secrets.jsoncodex_model_tray.trust.json
codex_model_tray.catalog.jsonProvider/model metadata and pinned models. This file is safe to share after removing any private routing details you do not want to publish.codex_model_tray.secrets.jsonPassword-encrypted vault for API keys and native auth backup. Do not commit or upload a real one.codex_model_tray.trust.jsonTrusted-machine cache for one device. Do not commit or upload a real one.
The repo includes safe reference files:
codex_model_tray.catalog.example.jsoncodex_model_tray.secrets.example.jsoncodex_model_tray.trust.example.json
These are examples only. They do not contain live keys, tokens, or trusted-machine data.
- Start Codex Desktop at least once so
%USERPROFILE%\\.codexexists. - Run
CodexModelTray.exe. - On first launch, create a vault password.
- Add API keys through the tray UI if you use API providers.
- Switch provider or run
Fix Threads (Safe)if visible chats need repair. - Optional: enable
Start With Windowsfrom the tray menu.
Run from source:
python main.pyBuild the Windows exe:
pyinstaller CodexModelTray.spec --clean- Download the latest release zip and extract it to a folder you want to keep.
- Run
CodexModelTray.exe. - Create a vault password on first launch.
- Open the tray menu and choose the provider or model you want Codex to use.
- Add provider API keys from the tray UI only when you use an API-key provider.
- Use
Fix Threads (Safe)to repair existing conversations after changing model or provider. - Use
Force Sync All Modelswhen you want every supported conversation record to match the currently selected main model. - Enable
Start With Windowsfrom the tray menu if you want the app to open automatically.
- The app resolves Codex home dynamically from
CODEX_HOME, otherwise%USERPROFILE%\\.codex. codex_model_tray.secrets.jsoncan move between machines, but the new machine still needs the vault password once.codex_model_tray.trust.jsonis machine-specific and should not be copied as a portable secret.
This repo ignores:
codex_model_tray.secrets.jsoncodex_model_tray.trust.jsoncodex_model_tray.key- local Codex workspace state under
.omc/and.omx/
That keeps normal git pushes from accidentally including live secrets or local runtime state.