Skip to content

Raistlin has cooked. V0.1 iPhone/iPad Cloud integration#31

Closed
RaistlinMuc wants to merge 20 commits intoDimillian:mainfrom
RaistlinMuc:ilass-cloudkit-sync
Closed

Raistlin has cooked. V0.1 iPhone/iPad Cloud integration#31
RaistlinMuc wants to merge 20 commits intoDimillian:mainfrom
RaistlinMuc:ilass-cloudkit-sync

Conversation

@RaistlinMuc
Copy link

@RaistlinMuc RaistlinMuc commented Jan 14, 2026

Raistlin has cooked — v0.1 iPhone/iPad Cloud integration

This PR adds an optional CloudKit-based transport so CodexMonitor can be used as an iPhone/iPad companion to the macOS app.

What’s included

  • CloudKit runner discovery (“is a Mac CodexMonitor online?”) + command bridge.
  • iOS/iPad Cloud client UI that mirrors the desktop layout (responsive).
  • Snapshot caching + loading indicators and several fixes for Cloud message ordering/deduping.
  • Disable updater UI on Apple mobile (the updater permissions are not available there).

Requirements

  • macOS machine to run the Mac CodexMonitor (acts as the Cloud “runner”).
  • Xcode (for iOS builds) + Apple Developer membership.
  • iCloud enabled on the devices you test with (same Apple ID).
  • codex installed and available in PATH on the Mac runner (Codex CLI).
  • Node.js + npm, Rust toolchain, Tauri v2.

Apple setup (CloudKit)

  1. Create an App ID (Bundle ID) for your build (e.g. com.yourcompany.codexmonitor).
  2. In the Apple Developer portal, enable iCloud and check CloudKit for that App ID.
  3. Create / select an iCloud Container (e.g. iCloud.com.yourcompany.codexmonitor).
  4. In Xcode for the iOS target:
    • Signing & Capabilities → add iCloud → enable CloudKit.
    • Ensure the same container is selected.
  5. In the app:
    • macOS: open Settings → Cloud → enable CloudKit and set the container identifier (e.g. iCloud.com.yourcompany.codexmonitor).
    • iOS/iPad: set the same CloudKit container identifier.

Running locally

Mac (runner)

  • npm install
  • npm run tauri dev
  • Ensure codex works on the machine (the app spawns codex app-server per workspace).

iOS/iPad (client)

  • tauri ios init
  • Open the generated Xcode project, set your Team and Bundle Identifier, and ensure iCloud/CloudKit capability is enabled.
  • Build/run on device.

Notes / limitations

  • CloudKit is optional and only active when enabled in Settings.
  • CloudKit is not true real-time; the implementation uses caching + periodic refresh.
  • Some Apple settings are project-specific (Team ID, Bundle ID, provisioning). You must set these for your own Apple Developer account.

Testing

  • npm run typecheck
  • cd src-tauri && cargo check
  • Manual smoke test on macOS + iPad (CloudKit test button + basic send/receive).

@RaistlinMuc RaistlinMuc changed the title feat: CloudKit transport + iOS/iPad client (experimental) Raistlin has cooked. V0.1 iPhone/iPad Cloud integration Jan 14, 2026
@kingkej
Copy link

kingkej commented Jan 15, 2026

amazing job done out here @RaistlinMuc

Peter vogel added 18 commits January 16, 2026 01:26
- Add Settings → Cloud section with container ID, status, and test actions.

- Add Tauri CloudKit commands + Rust CloudKit client (objc2) for Apple platforms.

- Add signed macOS build helper script + entitlements file.

- Avoid auto-triggering CloudKit calls when opening Settings when entitlements are misconfigured.

- Add CLI flags to run CloudKit status/test from terminal for debugging.
- Add signed macOS entitlements for CloudKit (Development environment).

- Implement CloudKit runner presence + snapshot upserts and remote command queue.

- Add CLI helpers for CloudKit debugging (runner/snapshots/commands).

- Add Settings UI section for CloudKit configuration + test.
- Add iOS/iPadOS Cloud client app that polls runner/snapshots and submits commands.

- Add end-to-end scripts for simulator/device, including screenshot capture.

- Suppress updater errors on platforms without updater permissions.
Reuse existing responsive components on iPad (TabletNav/Sidebar/Home/Messages/Composer), improve touch resize via pointer events, and guard unsupported desktop interactions on iOS.
- Move git2 and portable-pty behind desktop-only deps.

- Add an iOS terminal stub so the backend compiles.
@baptisteArno
Copy link
Contributor

Wow, yes please!

@RaistlinMuc
Copy link
Author

Closing in favor of a cleaner, rebased integrations rework PR with reduced UI surface area.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants