iOS-first MVP scaffold for a HeyCyan + Gemini + OpenClaw assistant.
This repo is intentionally honest about current constraints:
- Yes: it can be shaped into a capture-and-query iPhone bridge app.
- No: it does not currently prove live continuous POV streaming from HeyCyan glasses.
- Yes: the practical MVP is a phone app that controls capture, retrieves the latest media, sends it to Gemini, and optionally routes actions through OpenClaw.
The repo now treats iOS/HeyCyanClaw/ as the single canonical app scaffold that should map cleanly into one Xcode target.
iOS/HeyCyanClaw/
App/ app entrypoint + dependency wiring
Assistant/ request/response models + assistant coordinator
Audio/ AVAudioSession routing helper
Capture/ snapshot transfer flow from HeyCyan hotspot
Config/ runtime config loading
Device/ device models, BLE manager, HeyCyan device adapter
Integrations/
Gemini/ Gemini client contract + honest HTTP stub
OpenClaw/ OpenClaw bridge contract + honest HTTP stub
Storage/ latest-snapshot persistence
ViewModels/ simple SwiftUI screen state
Views/ single MVP screen
The intended flow is:
- Connect iPhone app to HeyCyan glasses over BLE / vendor SDK
- Trigger a photo capture on the glasses
- Retrieve the latest image via the device transfer flow
- Send image + user prompt to Gemini
- Optionally call OpenClaw for actions
- Speak or display the result back to the user
docs/architecture/mvp.md— realistic architecture and constraintsdocs/setup/ios-mvp-setup.md— Xcode, signing, SDK, runtime, and key setup notesiOS/HeyCyanClaw/— canonical Swift app scaffold for the first iPhone targetApp/— app entrypoint and dependency containerAssistant/— request/response models and coordinatorDevice/— HeyCyan device contract, BLE manager, and stubbed device implementationCapture/— transfer manager for latest-photo downloadIntegrations/Gemini/— Gemini client contract + HTTP stubIntegrations/OpenClaw/— OpenClaw bridge contract + HTTP stubStorage/— in-memory snapshot persistence contractViewModels/,Views/— one simple SwiftUI MVP screen
PLAN.md,STATUS.md,CONTEXT.md— durable handoff files
Buildable now means “reasonable to implement next in Xcode without inventing the product again”:
- a single app entrypoint and dependency container
- device / Gemini / OpenClaw interfaces
- one assistant coordination path
- snapshot persistence shape
- config strategy for API keys and bridge URLs
- SwiftUI shell for a first MVP app screen
These require real-world inputs outside the repo:
- real HeyCyan SDK integration and verified BLE/Wi-Fi transfer commands
- Apple signing / provisioning to run on a physical iPhone
- Gemini API key and chosen Gemini endpoint/model details
- OpenClaw gateway endpoint reachable from the phone
- hardware validation for capture latency, hotspot transfer, and audio routing
- Create an Xcode iOS app target and add the
iOS/HeyCyanClawfiles. - Replace placeholder BLE commands with actual HeyCyan SDK calls.
- Implement transfer-mode hotspot join + latest-media download.
- Wire Gemini using a real API key and selected model.
- Point the OpenClaw bridge at a reachable local/tailscale/public gateway.
- Validate the entire capture → analyze → answer loop on hardware.
This is an MVP scaffold, not a fake finished app. It is meant to reduce the cost of the next real implementation pass.