Thomas Digital · Internal · Project Plan
A plan to bring today's desktop chat rebuild to the mobile app — so you can run projects, send chats, and drive the whole system from your phone anywhere, with the same reliability the desktop now has. Grounded in frontier research on how the best 2026 mobile AI apps (and OpenClaw's own new native app) actually work.
2026-07-24 · companion to the chat rebuild recap · built from 4 research lenses + a live audit of the current mobile build
OpenClaw already shipped a native mobile app — copy what works
A month ago (2026-06-29) OpenClaw released official iOS and Android apps. They're built exactly the way ours should be: the phone is a thin client that talks over a secure connection to the brain on your Mac — it doesn't run the AI on the phone. What their app adds is the blueprint for ours:
Sources: OpenClaw iOS/Android launch (2026-06-29), App Store listing "Data Not Collected", Gateway WebSocket + Tailscale pairing docs.
A live audit of the current mobile build — more is done than you'd think
100vh, which breaks under the mobile keyboard (needs dvh).How the app is packaged — my recommendation
Your Command Center is already an installable app. Shipping the mobile fixes as a better PWA changes nothing about your setup and works this week. Push notifications do work on an installed iPhone app.
The catch, and why Capacitor is the likely endgame: on iPhone, a plain web app can't reliably wake you in the background — which is exactly what a control surface you depend on needs. Capacitor wraps the same Next.js code in a thin native shell, adding real background push, camera access, and a true app feel — without a rewrite. It's the same reason OpenClaw's own app went fully native. Reversible: the PWA keeps working the whole time; Capacitor is an add-on layer, not a fork.
Research verdict: "PWA — ship it today, add Capacitor if you hit a wall." React Native = a rewrite (rejected). Tauri-mobile = not ready in 2026.
Run as a disciplined /d4 build in a worktree · desktop chat stays untouched
Kill every 100vh → 100dvh. Add visualViewport handling so the composer floats above the keyboard. Rework the ThreadView layout for one column: conversations become a swipe-in drawer, the artifact panel becomes a full-screen sheet (not a split pane). Primary actions move within thumb reach.
Reuse today's server-side answer buffer + resume-from-cursor. Add the mobile-only triggers: reconnect-and-resume when the app returns to the foreground, when the screen unlocks, and on a wifi↔cellular switch. Wire push-to-wake: when a long answer finishes while the app is closed, a notification brings you back to the finished answer.
Long-press the send button for the model picker (per-send, no menus). Paperclip → camera or gallery upload. Conversation drawer with swipe. Action-approval cards for anything sensitive (mirrors OpenClaw's app). Optional: a "Canvas" full-screen artifact view.
Prove on an actual mobile viewport: two chats at once, a long answer while backgrounded + screen-locked + on a network switch, camera upload, keyboard-aware composer. If background push proves flaky as a PWA, wrap it in Capacitor (a scoped 1–2 day add-on). Ship a verified public preview link.
From ChatGPT, Claude, Perplexity apps + OpenClaw (2026)
100dvh + visualViewport so the text box always sits just above the keyboard.Paste this into a fresh session when you're ready to build
I've written a complete, self-contained build prompt — current state, the gaps, the frontier reference, the decision to make, and the success criteria — so a new session can run this A→Z without re-deriving anything.
→ Open the ready-to-paste prompt