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…

这是什么?CodexMonitor 是一个 Tauri 桌面应用,用于跨本地工作区编排和监控多个 OpenAI Codex 智能体,带有项目侧边栏、主页仪表盘,以及基于 Codex app-server 协议构建的对话视图。
这是原生桌面应用还是网页仪表盘?它是用 Tauri 构建的原生桌面应用(Rust 后端加 TypeScript/React 前端),不是浏览器应用;提供 macOS、Linux 和 Windows 版本,iOS 版本开发中。
怎么把它跑起来?克隆仓库,运行 npm install,然后用 npm run dev 启动开发构建;生产构建则用 Tauri 打包器生成。
运行它之前需要装什么?你需要 Node.js + npm、Rust 工具链、CMake(用于原生听写/Whisper 支持),以及在 PATH 里能以 'codex' 调用的 Codex CLI;worktree 功能需要 Git,GitHub CLI(gh)则为 Issues/PR 支持的可选组件。
iOS 或 Windows 构建有什么要注意的?iOS 支持仍在开发中,所以移动版上终端和听写仍不可用,而且默认进入远程后端模式;Windows 构建是可选参与的,从源码构建时除 CMake 外还需要 LLVM/Clang。
我的数据是留在本地,还是要过服务器?默认情况下,macOS/Linux/Windows 上的桌面使用是本地优先的,通过 stdio 与 codex app-server 通信;可选的远程守护进程模式让你在另一台机器上跑 Codex,通常经由 Tailscale 访问。
GitHub 集成能让我做什么?通过 gh CLI,CodexMonitor 可以列出并对比 GitHub Issues 和 Pull Requests、显示 PR 评论,并在浏览器里打开 commit/PR;“Ask PR”按钮能把 PR 上下文直接送进一个新的智能体线程。
我能远程控制它吗,比如用手机?可以,无头守护进程模式加上内置的 Tailscale 辅助工具,让开发中的 iOS 应用能通过你的 tailnet 连到桌面端托管的 Codex 守护进程,而不用保持桌面 UI 开着。
它支持语音输入吗?支持,它有按住说话的听写功能,带实时波形,由本地 Whisper 模型驱动。
Creator
Dimillian
Size
31.4 MB
Stars
4.3K
Age
9mo
Commits · 90 Days