Local and remote models in Codex Desktop, controlled from your menu bar.
PickerMux adds models from compatible Responses providers to the familiar Codex model picker, alongside the native models available to your account. Its macOS app installs the integration with one switch, refreshes the picker, and guides recovery after a Codex update. LM Studio is the default provider; other local or remote Responses providers use a custom configuration.
Download PickerMux for macOS — one universal DMG for Apple silicon and Intel.
| Menu-bar companion | Codex model picker |
![]() |
![]() |
Left: synthetic compact-menu preview with example usage. Right: Codex picker screenshot.
PickerMux is an unofficial community project. It is not affiliated with, endorsed by, or supported by OpenAI, Codex, or LM Studio.
- macOS 13 or newer, on Apple silicon or Intel.
- Codex Desktop, opened once while signed in so its native model picker loads.
- Node.js 22.15.0 or newer in
/opt/homebrew/bin,/usr/local/bin, or/usr/bin. Node.js is not bundled; download Node.js. - A compatible Responses provider with an available model. For the default LM Studio setup, start its server and load at least one LLM.
Chat Completions compatibility alone is insufficient. See provider configuration for custom endpoints, model allowlists, and provider credentials.
- Download the DMG, open it, and drag PickerMux.app to Applications.
- Eject the disk image and open PickerMux from Applications.
- Fully quit Codex with Command-Q and keep your provider models available.
- Turn on Use PickerMux in Codex in the menu-bar panel.
- Wait for setup to finish, then reopen Codex and select a provider model.
Turning the switch on authorizes installation and live model-certification prompts. Allow several minutes per model; keep Codex closed until setup ends. Only models that pass their exact certification receive tool access. Copying the app alone does not change Codex or install the integration.
For upgrades, download the new DMG, quit PickerMux, and replace its app. The new app offers a reviewed backend upgrade while Codex is closed, preserving your installed provider configuration. See upgrade details.
Make your provider models available, fully quit Codex, choose Refresh picker, and reopen Codex. With LM Studio, load the models you want before refreshing. Newly discovered models need Certify models… before they can use tools.
The compact menu offers Refresh picker, Open Codex, Check status, and Check installation as full-width rows, with specific feedback below them. Settings…, Help…, and Quit appear as separate rows at the bottom. Settings… contains update checks, optional login startup, refresh after Codex closes, and notifications. After a Codex update, Repair after a Codex update… explains the recovery and asks before quitting and reopening Codex. Catalog changes require a full restart.
If a working installation suddenly shows Integration needs review, review
the configuration-conflict checks.
A Codex service_tier setting inside PickerMux's marked root block can trigger
that message in 0.20.1 and earlier without a manual configuration edit; the
0.22.0 backend recognizes and preserves that setting after receipt verification.
The panel's Token usage section shows input, output, and total tokens per external provider in stacked Last model request and Since reset blocks. It uses provider-reported counts from requests through PickerMux, including tool rounds and context summaries. Missing counts are marked unavailable; partial sums are labelled. Counts and the last request survive bridge restarts, refreshes, and backend upgrades. Settings → Token usage → Reset accumulated counts… clears accumulated counts while retaining the last request. See token usage.
PickerMux 0.22.0 adds experimental GPT-Live WebRTC support. Codex can use OpenAI for voice while the selected local model handles delegated tasks. Voice audio and conversation context go to OpenAI, including when a local model is selected. This requires native sign-in and account access to Codex voice; local tool access still requires exact model certification. Voice and local delegation require manual validation with the installed backend and compatible client. See voice setup and acceptance.
Turning Use PickerMux in Codex off restores the native picker while retaining PickerMux for later use. Fully quit and reopen Codex to load that change.
For complete removal, quit Codex and choose Settings → Remove PickerMux completely…. Confirm removal of the integration, CLI, managed data, verified backups, and registered provider credentials. Then quit PickerMux and move its app to the Trash. Codex sign-in, projects, chats, and unrelated settings stay intact. An inactive provider alias keeps historical chats readable. If an old chat keeps reconnecting with a native model selected, its saved provider may still need native-provider recovery. See removal details.
- A private loopback bridge routes each exact model to its provider.
- External requests receive only their provider's credentials; native Codex credentials and metadata remain isolated.
- Tool capabilities are certified for each model and configuration.
- LM Studio supports loaded-model discovery, deferred tool schemas, and local context compaction; other Responses providers use explicit model allowlists.
- Install, refresh, recovery, and removal use verified ownership and rollback.
- The SwiftUI app bundles the Node.js backend, with no third-party runtime npm dependencies. Node.js remains an external prerequisite.
Read the technical guide for CLI commands, certification, performance, recovery, and limitations. Detailed references: architecture, configuration, companion app, and security.
Start with troubleshooting or support. Contributors should read CONTRIBUTING.md and the Code of Conduct. PickerMux is released under the MIT License.

