Vendors
Smart-glasses vendors Extentos supports. Meta Ray-Ban is the only GA target as of 2026-04 — every Ray-Ban Meta and Oakley Meta variant is supported through Meta's Device Access Toolkit. Mentra G1, Android XR, and Apple smart glasses are tracked roadmap vendors. Extentos's architecture (vendor-agnostic AppSpec, swappable GlassesTransport interface) is what makes one app code base run unchanged across current and future vendors as they ship.
Extentos is a smart-glasses development layer that abstracts vendor-specific SDKs behind one capability surface. As of 2026-04, Meta Ray-Ban is the only GA vendor — every Ray-Ban Meta and Oakley Meta variant is supported through the Meta Device Access Toolkit (DAT). Mentra G1, Android XR, and future Apple smart glasses are tracked roadmap vendors — supported in the architecture (vendor-agnostic AppSpec, swappable GlassesTransport interface) but not yet implemented as transports. This page is the consolidated status, the vendor model, and what "Extentos supports vendor X" actually means at any given point.
Status — as of 2026-04
| Vendor | Status | Hardware | What it means today |
|---|---|---|---|
| Meta Ray-Ban | ✅ GA | Ray-Ban Meta (Gen 1, Gen 2), Ray-Ban Meta Display, Oakley Meta HSTN | Build and ship today. Three transports live (RealMetaTransport for hardware, BrowserSimTransport for the browser simulator, LocalSimTransport wrapping Meta's Mock Device Kit). |
| Mentra G1 | 🟡 Roadmap | Mentra G1 (open-ecosystem developer glasses) | Architecture is ready (vendor-agnostic AppSpec, transport interface). No MentraTransport implementation yet. Tracking Mentra's SDK maturity. |
| Android XR | 🟡 Roadmap | Samsung / Google XR devices | Tracking Google's Android XR GA timeline. No transport implementation. |
| Apple smart glasses | 🟡 Roadmap | Pending Apple platform availability | Apple has not released a third-party smart-glasses SDK yet. Will add a transport once Apple opens a developer toolkit. |
The single GA vendor is verifiable: glassesEnum in mcp-server/src/tools/definitions.ts accepts only "meta_rayban", and AppSpecV2.deviceModel only accepts "META_RAYBAN". Adding another vendor means extending those enums alongside the transport implementation.
The vendor model
Extentos's vendor-portability is a structural property of the architecture, not a marketing promise. Three layers cooperate:
| Layer | What it does | Vendor-specific? |
|---|---|---|
| AppSpec | Your app's behavior — triggers, blocks, actions, handlers | No — written in vendor-agnostic primitives (capture_photo, voice_command, etc.) |
| Capability vocabulary | The set of abstract primitives the AppSpec composes from | No — same vocabulary across every vendor |
GlassesTransport interface | The library's internal contract — connect, capturePhoto, videoFrames, speak, etc. | Each vendor has one transport implementation |
Result: an app written today against meta_rayban runs unchanged on a future mentra_g1 target by switching the transport. No code rewrite, no AppSpec migration. The transport is the only piece that's vendor-aware.
This is verified in code:
android-library/glasses-core/src/main/java/com/extentos/glasses/core/GlassesTransport.kt— the interfaceRealMetaTransport.kt,BrowserSimTransport.kt,LocalSimTransport.kt— three implementations, all targeting Meta DAT todayios-library/Sources/GlassesCore/Transport/GlassesTransport.swift— iOS parity
A future Mentra vendor adds RealMentraTransport.kt and RealMentraTransport.swift that implement the same interface against Mentra's SDK. Existing apps targeting meta_rayban are unaffected.
For the deep dive on the abstraction, see concepts/capabilities — the vocabulary itself — and concepts/architecture — how the layers fit together.
What "supports vendor X" means at any point
This is worth pinning down explicitly because the word "supports" is doing a lot of work:
| Stage | What's true |
|---|---|
| Architecture-supported | The AppSpec, capability vocabulary, and transport interface accommodate the vendor. Meta, Mentra, Android XR, Apple are all architecture-supported today. |
| Transport-implemented | A concrete RealXxxTransport implementation exists that translates abstract calls to the vendor's SDK. Only Meta is transport-implemented today. |
| Simulator-coverage | The browser simulator can faithfully reproduce the vendor's runtime behavior. Today the simulator targets Meta capabilities; future vendors with novel capabilities (display rendering, neural-band gestures) will need simulator extensions. |
| GA | Transport-implemented, simulator-covered, validated end-to-end on real hardware. Only Meta is GA. |
Saying "Extentos supports Mentra G1" today means stage 1 — architecture-ready. It does not mean a developer can import com.mentra.* and ship. The roadmap pages for each non-Meta vendor are honest about which stage applies.
Why vendor portability matters for developers
The strategic case for building on Extentos rather than directly on a vendor SDK:
- One code base, future hardware coverage. When Mentra G1 ships in volume, your existing Extentos AppSpec runs on it without a rewrite. Apps written directly against Meta DAT need a separate Mentra implementation.
- One simulator, every vendor. The Extentos browser simulator (
BrowserSimTransport) is vendor-agnostic at the protocol layer. Adding a vendor adds support to the same simulator the developer already uses. Apps written directly against vendor SDKs need a different test harness per vendor. - One agent integration. The MCP server's 18 tools generalize across vendors. The agent uses the same
getPlatformInfo,validateIntegration,createSimulatorSessionwhether the target ismeta_raybanormentra_g1. No re-learning the tooling per vendor. - One AppSpec language. The capability vocabulary is shared. A developer who has built one Extentos app for Meta knows the language for every future vendor. No starting over.
- Bounded vendor lock-in. If Extentos ever doesn't fit, the AppSpec is a JSON document the developer owns; the generated code is the developer's app code. The exit cost is bounded.
The cost: vendor-specific features that aren't in the shared vocabulary (e.g., Meta Ray-Ban Display rendering, neural-band gestures) aren't accessible through Extentos. Apps that need those features need to use vendor SDKs directly. Most apps don't — most apps use camera, microphone, voice triggers, and audio output, all of which are in the shared vocabulary.
How a new vendor gets added
This is bounded engineering work, not a rewrite, because the architecture defines the seams:
- Implement
GlassesTransportfor the new vendor against its SDK —RealXxxTransport.kton Android,RealXxxTransport.swifton iOS. Estimated scope: similar toRealMetaTransport(~1500 lines per platform). - Declare the capability manifest — which abstract capabilities the vendor exposes, with tier markers (
stable,preview, etc.). - Extend the
glassesEnuminmcp-server/src/tools/definitions.tsanddeviceModelin the AppSpec types. - Extend the simulator backend — add the vendor's hardware-event injection UI if it has novel capabilities.
- Validate end-to-end on real hardware.
The AppSpec format doesn't change. The MCP tools don't change. Existing developer apps don't change. The new vendor is a drop-in addition.
The reason the roadmap exists rather than the implementations: each vendor's SDK has its own maturity, its own developer-program access requirements, and its own hardware availability. Extentos adds a vendor when adding it makes a real product (transport + simulator + tested hardware), not when the architecture could accept it.
Per-vendor pages
Deep reference for each vendor lives on its dedicated page:
- Meta Ray-Ban → — full GA capability matrix, hardware tiers, development setup, distribution state, the Meta DAT toolkit, partner-curated integrations like Google Maps on Display
- Mentra G1 → — roadmap status, open-ecosystem framing
- Android XR → — roadmap status, tracking Google's GA timeline
- Apple smart glasses → — roadmap status, pending Apple platform availability
Cross-vendor capability matrix
Comparison across vendors will land here once a second vendor is transport-implemented. Today, with Meta as the only GA vendor, the matrix would be one column — see vendors/meta for the full Meta capability table. The shape of the future matrix mirrors the abstract capability vocabulary: rows = capabilities (capture_photo, voice_command, etc.), columns = vendors, cells = tier (GA / preview / not exposed).
Frequently asked questions
Which smart glasses can I build for with Extentos today?
As of 2026-04, only Meta Ray-Ban — every Ray-Ban Meta variant (Gen 1, Gen 2, Display) and Oakley Meta HSTN. The Display variant has additional capabilities (heads-up display, neural-band gestures) that Meta doesn't expose to third-party DAT apps; Extentos works on Display hardware but doesn't surface those capabilities. See vendors/meta for the full picture.
Will my Extentos app run on Mentra G1 when it ships?
Architecturally yes — your AppSpec is vendor-agnostic and the abstraction is built for portability. Practically: it runs on Mentra G1 once Extentos ships a MentraTransport implementation. No code or spec changes are required on your side; the transport is selected at app start based on which hardware is present.
What about Vuzix, RealWear, Even Realities, or other vendors?
Not on the current roadmap. Roadmap inclusion requires the vendor to have a public SDK Extentos can target, sufficient developer-program access, and meaningful hardware availability. Suggest a vendor by filing an issue in the Extentos repository.
Can Extentos add display-rendering support for the Ray-Ban Meta Display variant?
Display rendering on Meta hardware is a Meta-controlled surface — third-party DAT apps can't draw to it. This isn't an Extentos limitation; it's a Meta API boundary. If Meta exposes display rendering in a future DAT release, Extentos will add it to the capability vocabulary.
Is Extentos vendor-locked to Meta?
No, technically. The architecture is vendor-agnostic by design. In practice, Meta is the only currently-implemented vendor, so today an Extentos developer is targeting Meta. The lock-in is bounded: the AppSpec is a JSON document you own, and your app_callback handlers are your own code. Switching off Extentos is a manageable migration if it ever becomes necessary.
When will Mentra G1 / Android XR / Apple be GA?
No committed timelines. Vendors are added when adding them makes a real product (transport implementation + simulator coverage + tested hardware), which depends on each vendor's SDK maturity and hardware availability. The current focus is finishing the Meta hardware test loop — see the changelog for actual release activity.
Does my Extentos app target the Meta companion app or run on the glasses?
Extentos apps are phone apps that talk to the glasses over Bluetooth. The phone runs your Android or iOS app; the glasses run Meta's firmware. This is the same model Meta DAT uses — see vendors/meta § Audio architecture for the audio-routing details and concepts/architecture for the system overview.
Related concepts
- Capabilities — the vendor-agnostic vocabulary every vendor's transport implements
- Architecture — how the AppSpec, library, transports, and backend fit together
- Transport vs app simulation — what each transport actually does, why the layering enables vendor portability
- Quickstart with an AI agent — install Extentos and target the GA vendor (Meta) today
Runtime internals (Android)
How the Android-specific runtime wraps the cross-platform Extentos core.
Meta Ray-Ban (Meta DAT)
Complete Meta Ray-Ban developer guide — hardware tiers (Ray-Ban Meta, Ray-Ban Meta Gen 2, Ray-Ban Meta Display), the Meta Device Access Toolkit (DAT) public capability matrix, distribution and development state, what you can build and ship today vs what's still gated behind Meta partnerships, and how Extentos abstracts the toolkit so the same code runs against the simulator and real glasses.