Meta Smart Glasses ready

Bring smart glasses
to any iOS or Android app.

$ extentos=extend your app's capabilities

The smart glasses infrastructure for mobile apps. Your AI agent adds capabilities with Extentos and tests them in a browser simulator — no hardware needed. Bug fixes and improvements ship through our native library, so the smart-glasses layer stays current automatically.

works inXcodeAndroid Studio+ any AI agent
live · 3dmeta ray-ban · mvp
agent prompt

Paste into any MCP-capable agent (Claude Code, Cursor, Windsurf, Cline). Restart the agent when it's done.
01 — architecture

Extends your agent.

Extends your agent's capabilities — while stripping maintenance and complexity, and making multi-vendor possible.

Extend your agent's capabilities.

Your agent gets 18 local MCP tools. We strip the complexity and optimize them for your agent.

agent
getPlatformInfo()
getCodeExample()
getCapabilityGuide()
generateConnectionModule()
createSimulatorSession()
validateIntegration()
inspectIntegration()
getEventLog()
getPermissions()
searchDocs()
  • Higher agent accuracy.
  • No SDK hallucinations.
  • Lower agent token cost.

Updates and fixes happen automatically.

New capabilities land for free, and Meta's SDK bug fixes apply themselves. No re-review marathons every time the vendor ships an update — the library absorbs breaking changes so your codebase doesn't have to.

NEWPOV photo capturev2.14.3exposed as tool
FIXBLE reconnect after sleepv2.14.2auto-patched
BREAKaudio codec → opusv2.14.0absorbed by lib
NEWlive transcription streamv2.13.7exposed as tool
FIXframe drops on low batteryv2.13.6auto-patched
  • New vendor features surfaced automatically.
  • SDK bug fixes and patches auto-applied.
  • Breaking changes absorbed by the library.
  • Zero re-review of your integration code.

Built for multi-vendor.

Meta Smart Glasses today. Whatever smart glasses we support next, your agent uses the same protocol for every capability — the library handles each vendor's details, and you can customize the experience per device when their hardware differs.

iOSnative
Androidnative
extentos · v1 protocol
Meta Smart Glassessupported
Android XRincoming
Mentra Glassincoming
Apple Smart Glassesfuture
  • Meta Smart Glasses supported today.
  • Zero vendor SDK in your app code.
  • Customize per vendor when capabilities differ.
  • New glasses = library version bump, not a rewrite.
02 — test loop

Test in seconds. Ship to any vendor.

Your app runs in the same Xcode or Android Studio emulator you already use, connected to a browser Simulator your agent spins up and controls. The two work together end-to-end: whatever the Simulator sends — camera, mic, speaker — runs through your real app in the emulator, exactly as it would on physical glasses.

CameraMicSpeakerWS
elapsed 04:57Meta Ray-Ban
Event Log·46
22:45:30LIFECYCLE app_foreground
22:45:31LIFECYCLE glasses_connected
22:45:32LIFECYCLE permission_granted camera
22:45:33LIFECYCLE stream_start audio · whisper
22:45:40VOICEREQMic “ask my coach”
22:45:40VOICE earcon
22:45:41LIFECYCLE stream_start video
22:45:42CAMERAREQ capture_photo
22:45:43CAMERARESULT photo_result
22:45:44VOICEREQVideo “should I hit or stand on 12?”
22:45:45AIREQ anthropic.ask
22:45:47AIRESULT answer · 2.1s
22:45:48VOICEspeak “Stand — dealer shows a 6…”
22:45:53VOICE earcon
22:45:54VOICEREQMic “take picture”
22:45:54VOICE earcon
22:45:55CAMERAREQ capture_photo
22:45:56CAMERARESULT photo_result
22:45:58LIFECYCLE stream_stop video
22:46:03VOICEREQMic “what’s my count?”
22:46:03VOICE earcon
22:46:05VOICEREQVideo “running count check”
22:46:06AIREQ anthropic.ask
22:46:08AIRESULT answer · 1.8s
22:46:08VOICEspeak “Running count is plus three…”
22:46:13VOICE earcon
22:46:14VOICEREQMic “start recording”
22:46:14VOICE earcon
22:46:15LIFECYCLE stream_start video
22:46:16CAMERAREQ capture_video
22:46:30VOICEREQVideo “next hand — double down?”
22:46:31VOICEspeak “Yes — double on 11…”
22:46:36VOICE earcon
22:46:37VOICEREQVideo “is this a good split?”
22:46:38VOICEspeak “Split the eights, always…”
22:46:43VOICE earcon
22:46:44VOICEREQMic “stop recording”
22:46:44VOICE earcon
22:46:45CAMERARESULT video_result
22:46:46LIFECYCLE stream_stop video
22:46:50VOICEREQMic “take picture”
22:46:50VOICE earcon
22:46:51CAMERAREQ capture_photo
22:46:52CAMERARESULT photo_result
22:47:00LIFECYCLE battery_update 87%
22:47:12LIFECYCLE session_idle
Glasses View
0:00 / 1:05
Voice Commands·1click voice to fire
WAKE
coach
w_coach_1
fired 1 time · 9s ago
GlassesDemoiPhone 17 Pro
Running
swiftGlassesDemoExtentosCoachHandler.swiftstart()
GlassesDemo
GlassesDemo
Extentos
Assets.xcassets
 1import GlassesCore
 2
 3final class CoachHandler {
 4  let glasses: any ExtentosGlasses
 5
 6  func start() {
 7    Task {
 8      for await t in glasses.audio.transcriptions() {
 9        guard case .final(let text, _, _, _) = t,
10              text.lowercased().contains("ask my coach")
11        else { continue }
12
13        _ = await glasses.audio.speak("What would you like to know?")
14        guard case .success(let q) =
15          await glasses.audio.recordDiscrete()
16        else { continue }
17
18        let answer = try await anthropic.ask(q.transcript)
19        _ = await glasses.audio.speak(answer)
20      }
21    }
22  }
23}
9:41
Meta View
Authorized
Meta Ray-Ban
Connected · BrowserSim
CAPABILITIES
Camera
Mic
Speaker
VOICE PHRASES
coach
WAKE
TOGGLES
Voice Activation
Listening for commands…

One fast loop — every platform.

Iterate in the browser — one run covers your whole target matrix.

  • Same code, verified on iOS and Android.
  • Every vendor reached through one protocol.
  • Seconds per loop — no device, no rebuilds.

Two testers: you and your agent.

The Simulator is built to be driven both ways.

  • You watch it live and click through the UI.
  • Your agent drives it through MCP.
  • One event log — read by both of you.

extentos = extend
your app's reach.

Install the MCP server. Point your agent at it. Ship to your first frames in an afternoon.

Read the docs →