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, затем запустите dev-сборку через npm run dev; продакшн-сборка создаётся бандлером Tauri.
Что нужно установить перед запуском?Нужны Node.js + npm, тулчейн Rust, CMake (для нативной диктовки/поддержки Whisper) и Codex CLI, доступный как 'codex' в PATH; Git нужен для функций worktree, а GitHub CLI (gh) опционален для поддержки Issues/PR.
Есть ли нюансы со сборками iOS или Windows?Поддержка iOS всё ещё в работе: терминал и диктовка остаются недоступными в мобильных сборках, и она по умолчанию использует режим удалённого бэкенда; сборки Windows — опциональные и требуют LLVM/Clang вдобавок к CMake для сборки из исходников.
Мои данные остаются локально или идут через сервер?По умолчанию использование на десктопе (macOS/Linux/Windows) — local-first: общение с codex app-server идёт через stdio; опциональный режим удалённого демона позволяет запустить Codex на другой машине, обычно доступной через Tailscale.
Что даёт интеграция с GitHub?Через gh CLI CodexMonitor выводит и сравнивает GitHub Issues и Pull Requests, показывает комментарии PR и открывает коммиты/PR в браузере; кнопка 'Ask PR' может отправить контекст PR прямо в новый тред агента.
Можно ли управлять им удалённо, например с телефона?Да, headless-режим демона плюс встроенные помощники Tailscale позволяют находящемуся в разработке iOS-приложению подключаться к хостящемуся на десктопе демону Codex через ваш tailnet, не держа десктопный UI открытым.
Поддерживается ли голосовой ввод?Да, есть диктовка в режиме удержания кнопки с живой волновой формой звука на базе локальной модели Whisper.
Creator
Dimillian
Size
31.4 MB
Stars
4.3K
Age
9mo
Commits · 90 Days