Codex Switchboard is a small local desktop utility for switching Codex Desktop/App between normal OpenAI/Codex mode and Ollama-backed models through Ollama's official ollama launch codex-app integration.
I made this for my own local workflow. It is shared as a small, unofficial utility in case it is useful to someone else. You are welcome to fork it, adapt it, or use pieces of it under the MIT license, but it is not intended to be a general AI platform or a supported commercial product.
It does not host models. It does not edit Codex internals. It does not manage repositories or threads. It is a narrow switchboard around one workflow:
Pick installed Ollama model -> preview command -> run Ollama launch -> restore when wanted
Codex Switchboard is experimental. v0.1 is macOS-first and currently distributed as an unsigned Apple Silicon macOS utility.
macOS may warn that the app cannot be verified. If you do not want to run an unsigned app, build it from source instead.
Codex Switchboard is an unofficial local utility. It is not affiliated with OpenAI, Codex, or Ollama.
- macOS on Apple Silicon for the packaged v0.1 build.
- Codex Desktop/App installed.
- Ollama
0.24.0or newer. - At least one local Ollama model already installed.
Windows and Linux are not supported by the v0.1 convenience actions yet.
Codex Switchboard can:
- Detect whether Ollama is installed and reachable.
- Show installed local Ollama models from
ollama list. - Let the user select one installed model.
- Preview the exact command before running it.
- Run
ollama launch codex-app --model <selected-model> --yes. - Run
ollama launch codex-app --restore --yes. - Capture stdout, stderr, exit code, and timestamps.
- Keep a simple local log of recent actions.
- Open Codex Desktop/App if practical.
Codex Switchboard uses explicit command arguments for a small command set:
ollama --version
ollama list
ollama launch codex-app --model <selected-model> --yes
ollama launch codex-app --restore --yes
open -a Codex
open -a "Codex App"
open <Codex Switchboard action log path>
It does not edit Codex databases, conversations, thread state, repositories, or user files.
The Rust backend re-checks the selected model against ollama list before switching, and blocks switch/restore if Ollama is older than 0.24.0.
When Ollama mode is active, Codex App may show a different chat/thread view. Your normal Codex chats should reappear after using Restore Normal Codex.
To restore normal Codex behavior, click Restore Normal Codex. The app previews and then runs:
ollama launch codex-app --restore --yes
The DevMuse name is lightweight personal/project branding for this small utility. It does not imply a hosted service, account system, model platform, or support commitment.
Codex Switchboard writes a local JSONL action log in the Tauri app data directory for this app. Logs include recent action metadata, command output, exit code, and duration. Stdout and stderr are truncated before writing, but you should still review logs before sharing them.
- v0.1 is macOS-focused.
- Public builds are unsigned and not notarized.
- The packaged build is intended for Apple Silicon macOS.
- Windows and Linux convenience actions are not implemented yet.
- The app depends on Ollama's
ollama launch codex-appbehavior. - It does not install, download, rank, or recommend models.
- It does not live-switch an already-open Codex thread.
v0.1 will not:
- Host or download models.
- Replace Ollama.
- Edit Codex SQLite/state files.
- Modify Codex thread state.
- Modify user repositories.
- Add accounts, sync, telemetry, analytics, payments, dashboards, or online services.
- Add a database unless a plain local log proves insufficient.
- Support llama.cpp, vLLM, LM Studio, or manual endpoints.
- Attempt live model hot-swapping inside an already-open Codex thread.
- Tauri
- React
- TypeScript
- Rust backend commands
This keeps the UI approachable while keeping command execution explicit and controlled.
Install dependencies:
npm install
Run the desktop app in development:
npm run tauri:dev
Build the frontend:
npm run build
Run Rust tests:
cd src-tauri
cargo test
Build a local macOS app bundle and DMG:
npm run tauri:build
Create release checksums:
npm run release:checksum
The built macOS app appears under:
src-tauri/target/release/bundle/macos/Codex Switchboard.app
The built DMG appears under:
src-tauri/target/release/bundle/dmg/
Run the full local check set:
npm run check
cd src-tauri && cargo test && cargo fmt --check
Run the advisory audit separately:
npm run audit
MIT. See LICENSE.