imux-mobile
imux-mobile is the dedicated phone control plane for the imux macOS workbench. The core coding path is CLI/TUI: multi-project workspaces, multiple terminal surfaces under the same project/session, and keystroke inject with screen snapshots. Agent Chat remains for multi-step tool work and approvals. Connection is cloud relay only (same Clavue account + one-time pair code) — no VPN, no open ports.
Two mobile apps
- Clavue Mobile (com.clavue.xw) — chat, Imagine, membership on the phone
- imux-mobile (com.imux.mobile) — remote coding control for desktop imux
- Same Clavue membership session; different package ids and download channels
Download
- Landing: www.clavue.com/mobile#imux (also mirrored on www.iccjk.com/mobile#imux)
- Android APK channel: /downloads/mobile/latest-imux-mobile.json
- Package id: com.imux.mobile · Android 7.0+
- iOS: App Store / TestFlight pending — Android is the public channel today
curl -sS https://www.clavue.com/downloads/mobile/latest-imux-mobile.json | head
# downloads.android.apk → versioned APK URL
# Mirror host also serves the same files under www.iccjk.comPair in three steps (Codex-style)
- On Mac: open imux → Settings → imux Mobile → sign in with Clavue → enable phone link → Show pair code (QR + 8-char code + imux://pair?code=…)
- On phone: install imux-mobile → sign in with the same Clavue account → Pair host → enter code or open the deep link
- Keep the Mac awake and online; projects, terminals, and agent sessions appear under the host within ~10s projection heartbeats
Pair codes expire (about 10 minutes) and are single-use. Never share a live code outside your own devices.
Daily use
- Home: linked Mac hosts + Needs you attention cards (tool approvals)
- Open a host → multi-project list (terminal count + agent count per project)
- Open a project → Terminals tab (primary): pick any pane/tab under that project
- Terminal session: send CLI commands, quick chips, Refresh snapshot, optional Raw TUI keys — same surfaceId = same session
- Agents tab: continue Agent Chat / plan / chat modes; approve Allow once / session / Deny
- Execution always runs on the Mac (inject + tools)
Multi-project · multi-terminal
- Each imux workspace projects as a project; open several projects on one Mac
- Splits and tabs under one project all appear as separate terminal surfaces
- Phone keeps targeting a surface UUID so follow-up commands stay in that shell/TUI session
- Agent Chat is secondary for multi-step tool orchestration under the same project
Security model
- Cloud relay via clavue.com membership APIs only — no inbound ports on the Mac
- Device secret never returned after register; pair codes single-use + short TTL
- Desktop tool approval defaults still apply; phone cannot bypass Mac policy
- Revoke a device or re-pair from account / desktop settings if a phone is lost
Requirements
- macOS imux signed in with the same Clavue account
- Settings → imux Mobile enabled (phone link on)
- Mac awake / not fully asleep during remote sessions
- Phone with network access to www.clavue.com
Notifications (v0.1.1+)
- Local alerts when a Mac task needs approval or finishes (completed / failed)
- In-app update checks against latest-imux-mobile.json
- Remote FCM/APNs fan-out from the cloud is planned (client channels ready)
Current limits (honest)
- Live transcript is progress preview poll (~2–3s) — not full token SSE yet
- Remote push fan-out not yet; local notifications cover approvals while the app process is active
- Camera QR scan not required; type code or open deep link
- No full IDE / repo sync on the phone — control plane only
Publish ops (maintainers)
Manifest is latest-imux-mobile.json (separate from Clavue Mobile’s latest-mobile.json).
cd imux-mobile
./scripts/publish-android-release.sh --bump patch --deploy \
--notes "修复说明;第二条 changelog"