CodexMonitor README

The project's README from github.com/Dimillian/CodexMonitor. As one markdown file: README.md.

CodexMonitor

gitcgr

CodexMonitor

CodexMonitor is a 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.

Features

Workspaces & Threads

Composer & Agent Controls

Git & GitHub

Files & Prompts

UI & Experience

Requirements

If you hit native build errors, run:

npm run doctor

Getting Started

Install dependencies:

npm install

Run in dev mode:

npm run tauri:dev

iOS Support (WIP)

iOS support is currently in progress.

iOS + Tailscale Setup (TCP)

Use this when connecting the iOS app to a desktop-hosted daemon over your Tailscale tailnet. Canonical runbook: docs/mobile-ios-tailscale-blueprint.md.

  1. Install and sign in to Tailscale on both desktop and iPhone (same tailnet).
  2. On desktop CodexMonitor, open Settings > Server.
  3. Set a Remote backend token.
  4. Start the desktop daemon with Start daemon (in Mobile access daemon).
  5. In Tailscale helper, use Detect Tailscale and note the suggested host (for example your-mac.your-tailnet.ts.net:4732).
  6. On iOS CodexMonitor, open Settings > Server.
  7. Enter the desktop Tailscale host and the same token.
  8. Tap Connect & test and confirm it succeeds.

Notes:

Headless Daemon Management (No Desktop UI)

Use the standalone daemon control CLI when you want iOS remote mode without keeping the desktop app open.

Build binaries:

cd src-tauri
cargo build --bin codex_monitor_daemon --bin codex_monitor_daemonctl

Examples:

# Show current daemon status
./target/debug/codex_monitor_daemonctl status

# Start daemon using host/token from settings.json
./target/debug/codex_monitor_daemonctl start

# Stop daemon
./target/debug/codex_monitor_daemonctl stop

# Print equivalent daemon start command
./target/debug/codex_monitor_daemonctl command-preview

Useful overrides:

iOS Prerequisites

rustup target add aarch64-apple-ios aarch64-apple-ios-sim
# Optional (Intel Mac simulator builds):
rustup target add x86_64-apple-ios

Run on iOS Simulator

./scripts/build_run_ios.sh

Options:

Run on USB Device

List discoverable devices:

./scripts/build_run_ios_device.sh --list-devices

Build, install, and launch on a specific device:

./scripts/build_run_ios_device.sh --device "<device name or identifier>" --team <TEAM_ID>

Additional options:

First-time device setup usually requires:

  1. iPhone unlocked and trusted with this Mac.
  2. Developer Mode enabled on iPhone.
  3. Pairing/signing approved in Xcode at least once.

If signing is not ready yet, open Xcode from the script flow:

./scripts/build_run_ios_device.sh --open-xcode

iOS TestFlight Release (Scripted)

Use the end-to-end script to archive, upload, configure compliance, assign beta group, and submit for beta review.

./scripts/release_testflight_ios.sh

The script auto-loads release metadata from .testflight.local.env (gitignored). For new setups, copy .testflight.local.env.example to .testflight.local.env and fill values.

Release Build

Build the production Tauri bundle:

npm run tauri:build

Artifacts will be in src-tauri/target/release/bundle/ (platform-specific subfolders).

Windows (opt-in)

Windows builds are opt-in and use a separate Tauri config file to avoid macOS-only window effects.

npm run tauri:build:win

Artifacts will be in:

Note: building from source on Windows requires LLVM/Clang (for bindgen / libclang) in addition to CMake.

Type Checking

Run the TypeScript checker (no emit):

npm run typecheck

Note: npm run build also runs tsc before bundling the frontend.

Validation

Recommended validation commands:

npm run lint
npm run test
npm run typecheck
cd src-tauri && cargo check

Codebase Navigation

For task-oriented file lookup ("if you need X, edit Y"), use:

Project Structure

src/
  features/         feature-sliced UI + hooks
  features/app/bootstrap/      app bootstrap orchestration
  features/app/orchestration/  app layout/thread/workspace orchestration
  features/threads/hooks/threadReducer/  thread reducer slices
  services/         Tauri IPC wrapper
  styles/           split CSS by area
  types.ts          shared types
src-tauri/
  src/lib.rs        Tauri app backend command registry
  src/bin/codex_monitor_daemon.rs  remote daemon JSON-RPC process
  src/bin/codex_monitor_daemon/rpc/  daemon RPC domain handlers
  src/shared/       shared backend core used by app + daemon
  src/shared/git_ui_core/      git/github shared core modules
  src/shared/workspaces_core/  workspace/worktree shared core modules
  src/workspaces/   workspace/worktree adapters
  src/codex/        codex app-server adapters
  src/files/        file adapters
  tauri.conf.json   window configuration

Notes

Tauri IPC Surface

Frontend calls live in src/services/tauri.ts and map to commands in src-tauri/src/lib.rs. The current surface includes:

CodexMonitor (Dimillian/CodexMonitor)

Searching Database…

What is this?CodexMonitor is a Tauri desktop app for orchestrating and monitoring multiple OpenAI Codex agents across local workspaces, with a sidebar for projects, a home dashboard, and a conversation view built on the Codex app-server protocol.
Is this a native desktop app or a web dashboard?It's a native desktop app built with Tauri (Rust backend plus TypeScript/React frontend), not a browser app; it ships for macOS, Linux and Windows, with an in-progress iOS build.
How do I get it running?Clone the repo, run npm install, then start the dev build with npm run dev; a production build is created with the Tauri bundler.
What do I need installed before running it?You need Node.js + npm, the Rust toolchain, CMake (for native dictation/Whisper support), and the Codex CLI available as 'codex' in PATH; Git is needed for worktree features and the GitHub CLI (gh) is optional for Issues/PR support.
Any catches with the iOS or Windows builds?iOS support is still work-in-progress, so terminal and dictation remain unavailable on mobile builds and it defaults to remote backend mode; Windows builds are opt-in and need LLVM/Clang in addition to CMake to build from source.
Does my data stay local or go through a server?By default, desktop usage on macOS/Linux/Windows is local-first, talking to the codex app-server over stdio; an optional remote daemon mode lets you run Codex on another machine, typically reached over Tailscale.
What does the GitHub integration let me do?Through the gh CLI, CodexMonitor lists and diffs GitHub Issues and Pull Requests, shows PR comments, and opens commits/PRs in the browser; an 'Ask PR' button can send PR context straight into a new agent thread.
Can I control it remotely, say from my phone?Yes, a headless daemon mode plus built-in Tailscale helpers let the in-progress iOS app connect to a desktop-hosted Codex daemon over your tailnet without keeping the desktop UI open.
Does it support voice input?Yes, it has hold-to-talk dictation with a live waveform, powered by a local Whisper model.
Creator
Dimillian
Size
31.4 MB
Stars
4.3K
Age
9mo
Commits · 90 Days