CodexMonitor is a macOS Tauri app for orchestrating multiple Codex agents across local workspaces. It provides a sidebar to manage projects, a home screen for quick actions, and a conversation view backed by the Codex app-server protocol.
- Add and persist workspaces using the system folder picker.
- Spawn one
codex app-serverper workspace and stream events over JSON-RPC. - Restore threads per workspace from the Codex rollout history (
thread/list) and resume on selection. - Start agent threads, send messages, show reasoning/tool call items, and handle approvals.
- Git diff sidebar with per-file +/- counts (libgit2).
- Skills menu that inserts
$skilltokens into the composer. - Archive threads (removes from UI and calls
thread/archive). - macOS overlay title bar with vibrancy effects.
- Node.js + npm
- Rust toolchain (stable)
- Codex installed on your system and available as
codexinPATH
If the codex binary is not in PATH, update the backend to pass a custom path per workspace.
Install dependencies:
npm installRun in dev mode:
npm run tauri devBuild the production Tauri bundle (app + dmg):
npm run tauri buildThe macOS app bundle will be in src-tauri/target/release/bundle/macos/.
Run the TypeScript checker (no emit):
npm run typecheckNote: npm run build also runs tsc before bundling the frontend.
src/
components/ UI building blocks
hooks/ state + event wiring
services/ Tauri IPC wrapper
styles/ split CSS by area
types.ts shared types
src-tauri/
src/lib.rs Tauri backend + codex app-server client
tauri.conf.json window configuration
- Workspaces persist to
workspaces.jsonunder the app data directory. - Threads are restored by filtering
thread/listresults using the workspacecwd. - Selecting a thread always calls
thread/resumeto refresh messages from disk. - CLI sessions appear if their
cwdmatches the workspace path; they are not live-streamed unless resumed. - The app uses
codex app-serverover stdio; seesrc-tauri/src/lib.rs.
