Skip to content
patrickschillerPublic

About

Use local and remote models from compatible responses providers in Codex Desktop

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

PickerMux

CI License: MIT Platform: macOS 13+

Local and remote models in Codex Desktop, controlled from your menu bar.

PickerMux adds compatible provider models alongside your native Codex models. The macOS app installs the integration, refreshes the picker, and guides recovery after Codex updates. LM Studio is the default provider.

Download PickerMux for macOS — one signed and notarized DMG for Apple silicon and Intel.

Menu-bar companion Codex model picker
PickerMux 0.30.0 menu preview with LM Studio token totals, Refresh picker, Open Codex and Config Codex model picker with namespaced external models alongside native models

Left: current app rendered with synthetic usage. Right: Codex picker screenshot.

36-second English explainer of routing and certified tools, with synthetic examples and no audio

Download the explainer MP4 · Media details

PickerMux is an unofficial community project, unaffiliated with OpenAI, Codex, or LM Studio.

Requirements

  • macOS 13+ on Apple silicon or Intel.
  • Codex Desktop, opened once while signed in to load its native model picker.
  • Node.js 22.15.0+ in /opt/homebrew/bin, /usr/local/bin, or /usr/bin. Install Node.js separately.
  • A compatible Responses provider with an available model. For LM Studio, start its server and load at least one LLM.

General Chat Completions compatibility is insufficient. Custom Responses providers and the experimental MLX adapter are described in configuration.

Install

  1. Open the DMG and drag PickerMux.app to Applications.
  2. Eject the image and open PickerMux from Applications.
  3. Fully quit Codex with Command-Q and keep your provider models available.
  4. Turn on Use PickerMux in Codex.
  5. Wait for setup, reopen Codex, and select a provider model.

Enabling the switch authorizes installation and live certification prompts. Allow several minutes per model. Tools become available only after the exact model configuration passes certification.

For an update, quit PickerMux, replace its app from the new DMG, and reopen it. Then fully quit Codex and confirm the offered backend upgrade, or use Config → Update installed backend…. App and backend versions are separate; the backend upgrade preserves provider settings.

If an earlier setup has no external providers, Config → Enable LM Studio models… offers a reviewed migration. Keep Codex closed and an LM Studio model loaded. Existing external-provider configurations are never replaced by this action. See upgrade details.

Everyday use

Load the models you want, fully quit Codex, choose Refresh picker, and reopen Codex. Models appear in Codex's picker; the PickerMux menu shows provider usage. New models need Certify models… before using tools.

Certified models receive guidance for sandbox-related command failures, including macOS Simulator connections. They can request the specific command through Codex's approval flow when permitted. Individual approvals may still be needed; PickerMux does not change execution permissions. After a backend upgrade, refresh the picker and fully quit and reopen Codex to load updated guidance.

Automatic Codex Guardian reviews also work with PickerMux's compacted LM Studio history. Recognized native reviews receive the authenticated summary as untrusted context; Codex still decides approval. This review context goes to OpenAI when automatic review is enabled, even with a local task model. Known native metadata and timing events in a completed review stream are retained. Response-validation failures and stream interruptions in projected reviews include a fixed REVIEW_* diagnostic marker in the public error. This changes diagnostics only; it does not relax approval or response checks. See approval troubleshooting.

Since 0.40.1, the LM Studio adapter removes native encrypted-output replay requests, including Codex's newer output.encrypted_content selector, before provider validation. This prevents the immediate Invalid enum value failure without a Codex setting change. Existing matching certifications and compacted history remain valid.

The revised LM Studio certification checks tool-result continuation with the full conversation, uses numbered records for its long-context test, and allows more output tokens when discovered metadata requires reasoning. After upgrading to that backend revision, existing LM Studio models need a fresh certification. See certification troubleshooting. If optional tool search is unreliable, the CLI's --direct-only certification option retains Direct tools after a complete base pass.

Tool certification does not test automatic context compaction. Its separate summary budget allows more room for mandatory reasoning, and a failed summary preserves the prior history. Summary guidance asks the model to retain the active task and exact answer-format constraints. These compaction fixes leave matching certifications valid. Larger reasoning allowances can take longer; summary quality still depends on the model. See compaction troubleshooting.

Config… contains status and installation checks, installation details, updates, startup preferences, notifications, token reset, and Full refresh…. A full refresh asks for confirmation before its two graceful Codex quits and recovery sequence. Unavailable actions explain their prerequisites. After a Codex update, follow the offered repair guidance.

Token usage shows provider-reported Input, Output, and Total for Last model request and Since reset. Counts survive restarts and backend upgrades. Config → Token usage → Reset accumulated counts… clears totals and retains the last request. Missing counts remain unavailable; Output speed appears only with a matching measurement. Provider ID kolibri is hidden from the app's usage rows. Token details.

Optional providers and voice

Custom local or remote Responses providers use explicit model allowlists and provider credentials. The experimental Apple-silicon MLX adapter supports immutable model profiles and certified Kolibri function calls; it requires separate runtime setup. Kolibri's roughly 41 GiB model targets Macs with at least 64 GB unified memory. Reasoning, media, and compaction are unsupported; context changes require a new profile and certification. Provider and MLX setup.

Experimental native voice requires Codex account access. Audio and conversation context go to OpenAI even when a local model handles delegated tasks. Voice setup and limits.

Switch off or remove

Turn Use PickerMux in Codex off, then fully quit and reopen Codex to restore its native picker while retaining PickerMux for later use.

For complete removal, quit Codex and choose Config → Remove PickerMux completely…. Review deletion of the CLI, managed data, verified backups, and registered provider credentials. Afterwards, quit PickerMux and move its app to the Trash. Codex sign-in, chats, projects, and unrelated settings are retained. An old chat that keeps reconnecting may need native-provider recovery.

Help and contribute

The private loopback bridge resolves exact model routes and keeps native Codex credentials isolated from external providers. Tool grants require model-bound certification; lifecycle changes validate ownership and support rollback.

Troubleshooting · Technical guide and CLI · Configuration · Companion app · Architecture · Security

Report a bug or request a feature. Report vulnerabilities privately as described in SECURITY.md. Contributors need macOS and Node.js 22.15.0+; run npm run verify and the Swift tests. See CONTRIBUTING.md, AGENTS.md, and the changelog. PickerMux uses the MIT License.

About

Use local and remote models from compatible responses providers in Codex Desktop

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages