[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-meta-debugging":3,"mdc--ne1lus-key":33,"related-org-meta-debugging":552,"related-repo-meta-debugging":734},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":28,"sourceUrl":31,"mdContent":32},"debugging","debug wearable device software","Common issues, Developer Mode, version compatibility, state machine diagnosis",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"meta","Meta Open Source","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmeta.png","facebook",[13,17,20],{"name":14,"slug":15,"type":16},"iOS","ios","tag",{"name":18,"slug":19,"type":16},"Engineering","engineering",{"name":21,"slug":4,"type":16},"Debugging",488,"https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fmeta-wearables-dat-ios","2026-05-15T06:14:38.626606",null,112,[],{"repoUrl":23,"stars":22,"forks":26,"topics":29,"description":30},[],"Meta Wearables Device Access Toolkit for iOS","https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fmeta-wearables-dat-ios\u002Ftree\u002FHEAD\u002Fplugins\u002Fmwdat-ios\u002Fskills\u002Fdebugging","---\nname: debugging\ndescription: Common issues, Developer Mode, version compatibility, state machine diagnosis\n---\n\n# Debugging (iOS)\n\nDiagnose common setup, registration, and streaming issues in DAT SDK integrations.\n\n## Quick diagnosis\n\n```text\nDevice not connecting?\n│\n├── Is Developer Mode enabled? → Enable in Meta AI app settings\n│\n├── Is device registered? → Check registration state\n│\n├── Is device in range? → Bluetooth on, glasses powered on\n│\n├── Is the app registered? → Check registrationStateStream()\n│\n└── Stream stuck in waitingForDevice? → Check device availability\n```\n\n## Developer Mode\n\nDeveloper Mode must be enabled for 3P apps to access device features.\n\n### Enabling Developer Mode\n\n1. Open Meta AI app on phone\n2. Go to Settings → (Your connected glasses)\n3. Find \"Developer Mode\" toggle\n4. Toggle ON\n5. Device may restart\n\n### Symptoms of Developer Mode disabled\n\n- Registration completes but device never connects\n- Stream stuck in `waitingForDevice`\n- Permission requests fail or never appear\n\n### Watch for\n\n- Developer Mode toggles **off** after firmware updates — re-enable it\n- Developer Mode is per-device — enable for each glasses pair\n- Some features need additional permissions beyond Developer Mode\n\n## Stream state issues\n\n### Expected flow\n\n```text\nstopped → waitingForDevice → starting → streaming → stopped\n```\n\n### Stuck in waitingForDevice\n\n- Device not in range or not connected\n- Device not reporting availability\n- DeviceSelector not matching any device\n\n### Unexpected stop\n\n- Device disconnected (out of range, battery died)\n- Channel closed by device\n- Error in frame processing\n\n## Version compatibility\n\nEnsure compatible versions of SDK, Meta AI app, and glasses firmware. See [version dependencies](https:\u002F\u002Fwearables.developer.meta.com\u002Fdocs\u002Fversion-dependencies) for the current compatibility matrix.\n\n## Known issues\n\n| Issue | Workaround |\n|-------|-----------|\n| No internet → registration fails | Internet required for registration |\n| Streams started with glasses doffed pause when donned | Unpause by tapping side of glasses |\n| [iOS] Meta Ray-Ban Display: no audio feedback on pause\u002Fresume | Will be fixed in future release |\n\n## Adding debug logging\n\n```swift\nimport os\n\nprivate let logger = Logger(subsystem: \"com.yourapp\", category: \"Wearables\")\n\n\u002F\u002F In your streaming code:\nlogger.debug(\"Stream state changed to: \\(state)\")\nlogger.error(\"Stream error: \\(error)\")\n```\n\n## Checklist\n\n- [ ] Developer Mode enabled in Meta AI app\n- [ ] Meta AI app updated to compatible version\n- [ ] Glasses firmware updated to compatible version\n- [ ] Internet connection available for registration\n- [ ] Bluetooth enabled on phone\n- [ ] Correct URL scheme configured in Info.plist\n- [ ] Background modes enabled (bluetooth-peripheral, external-accessory)\n\n## Links\n\n- [Known issues](https:\u002F\u002Fwearables.developer.meta.com\u002Fdocs\u002Fknownissues)\n- [Version dependencies](https:\u002F\u002Fwearables.developer.meta.com\u002Fdocs\u002Fversion-dependencies)\n- [Troubleshooting discussions](https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fmeta-wearables-dat-ios\u002Fdiscussions)\n",{"data":34,"body":35},{"name":4,"description":6},{"type":36,"children":37},"root",[38,47,53,60,73,79,84,91,121,127,152,158,184,190,196,205,211,229,235,253,259,275,281,353,359,432,438,509,515,546],{"type":39,"tag":40,"props":41,"children":43},"element","h1",{"id":42},"debugging-ios",[44],{"type":45,"value":46},"text","Debugging (iOS)",{"type":39,"tag":48,"props":49,"children":50},"p",{},[51],{"type":45,"value":52},"Diagnose common setup, registration, and streaming issues in DAT SDK integrations.",{"type":39,"tag":54,"props":55,"children":57},"h2",{"id":56},"quick-diagnosis",[58],{"type":45,"value":59},"Quick diagnosis",{"type":39,"tag":61,"props":62,"children":67},"pre",{"className":63,"code":65,"language":45,"meta":66},[64],"language-text","Device not connecting?\n│\n├── Is Developer Mode enabled? → Enable in Meta AI app settings\n│\n├── Is device registered? → Check registration state\n│\n├── Is device in range? → Bluetooth on, glasses powered on\n│\n├── Is the app registered? → Check registrationStateStream()\n│\n└── Stream stuck in waitingForDevice? → Check device availability\n","",[68],{"type":39,"tag":69,"props":70,"children":71},"code",{"__ignoreMap":66},[72],{"type":45,"value":65},{"type":39,"tag":54,"props":74,"children":76},{"id":75},"developer-mode",[77],{"type":45,"value":78},"Developer Mode",{"type":39,"tag":48,"props":80,"children":81},{},[82],{"type":45,"value":83},"Developer Mode must be enabled for 3P apps to access device features.",{"type":39,"tag":85,"props":86,"children":88},"h3",{"id":87},"enabling-developer-mode",[89],{"type":45,"value":90},"Enabling Developer Mode",{"type":39,"tag":92,"props":93,"children":94},"ol",{},[95,101,106,111,116],{"type":39,"tag":96,"props":97,"children":98},"li",{},[99],{"type":45,"value":100},"Open Meta AI app on phone",{"type":39,"tag":96,"props":102,"children":103},{},[104],{"type":45,"value":105},"Go to Settings → (Your connected glasses)",{"type":39,"tag":96,"props":107,"children":108},{},[109],{"type":45,"value":110},"Find \"Developer Mode\" toggle",{"type":39,"tag":96,"props":112,"children":113},{},[114],{"type":45,"value":115},"Toggle ON",{"type":39,"tag":96,"props":117,"children":118},{},[119],{"type":45,"value":120},"Device may restart",{"type":39,"tag":85,"props":122,"children":124},{"id":123},"symptoms-of-developer-mode-disabled",[125],{"type":45,"value":126},"Symptoms of Developer Mode disabled",{"type":39,"tag":128,"props":129,"children":130},"ul",{},[131,136,147],{"type":39,"tag":96,"props":132,"children":133},{},[134],{"type":45,"value":135},"Registration completes but device never connects",{"type":39,"tag":96,"props":137,"children":138},{},[139,141],{"type":45,"value":140},"Stream stuck in ",{"type":39,"tag":69,"props":142,"children":144},{"className":143},[],[145],{"type":45,"value":146},"waitingForDevice",{"type":39,"tag":96,"props":148,"children":149},{},[150],{"type":45,"value":151},"Permission requests fail or never appear",{"type":39,"tag":85,"props":153,"children":155},{"id":154},"watch-for",[156],{"type":45,"value":157},"Watch for",{"type":39,"tag":128,"props":159,"children":160},{},[161,174,179],{"type":39,"tag":96,"props":162,"children":163},{},[164,166,172],{"type":45,"value":165},"Developer Mode toggles ",{"type":39,"tag":167,"props":168,"children":169},"strong",{},[170],{"type":45,"value":171},"off",{"type":45,"value":173}," after firmware updates — re-enable it",{"type":39,"tag":96,"props":175,"children":176},{},[177],{"type":45,"value":178},"Developer Mode is per-device — enable for each glasses pair",{"type":39,"tag":96,"props":180,"children":181},{},[182],{"type":45,"value":183},"Some features need additional permissions beyond Developer Mode",{"type":39,"tag":54,"props":185,"children":187},{"id":186},"stream-state-issues",[188],{"type":45,"value":189},"Stream state issues",{"type":39,"tag":85,"props":191,"children":193},{"id":192},"expected-flow",[194],{"type":45,"value":195},"Expected flow",{"type":39,"tag":61,"props":197,"children":200},{"className":198,"code":199,"language":45,"meta":66},[64],"stopped → waitingForDevice → starting → streaming → stopped\n",[201],{"type":39,"tag":69,"props":202,"children":203},{"__ignoreMap":66},[204],{"type":45,"value":199},{"type":39,"tag":85,"props":206,"children":208},{"id":207},"stuck-in-waitingfordevice",[209],{"type":45,"value":210},"Stuck in waitingForDevice",{"type":39,"tag":128,"props":212,"children":213},{},[214,219,224],{"type":39,"tag":96,"props":215,"children":216},{},[217],{"type":45,"value":218},"Device not in range or not connected",{"type":39,"tag":96,"props":220,"children":221},{},[222],{"type":45,"value":223},"Device not reporting availability",{"type":39,"tag":96,"props":225,"children":226},{},[227],{"type":45,"value":228},"DeviceSelector not matching any device",{"type":39,"tag":85,"props":230,"children":232},{"id":231},"unexpected-stop",[233],{"type":45,"value":234},"Unexpected stop",{"type":39,"tag":128,"props":236,"children":237},{},[238,243,248],{"type":39,"tag":96,"props":239,"children":240},{},[241],{"type":45,"value":242},"Device disconnected (out of range, battery died)",{"type":39,"tag":96,"props":244,"children":245},{},[246],{"type":45,"value":247},"Channel closed by device",{"type":39,"tag":96,"props":249,"children":250},{},[251],{"type":45,"value":252},"Error in frame processing",{"type":39,"tag":54,"props":254,"children":256},{"id":255},"version-compatibility",[257],{"type":45,"value":258},"Version compatibility",{"type":39,"tag":48,"props":260,"children":261},{},[262,264,273],{"type":45,"value":263},"Ensure compatible versions of SDK, Meta AI app, and glasses firmware. See ",{"type":39,"tag":265,"props":266,"children":270},"a",{"href":267,"rel":268},"https:\u002F\u002Fwearables.developer.meta.com\u002Fdocs\u002Fversion-dependencies",[269],"nofollow",[271],{"type":45,"value":272},"version dependencies",{"type":45,"value":274}," for the current compatibility matrix.",{"type":39,"tag":54,"props":276,"children":278},{"id":277},"known-issues",[279],{"type":45,"value":280},"Known issues",{"type":39,"tag":282,"props":283,"children":284},"table",{},[285,304],{"type":39,"tag":286,"props":287,"children":288},"thead",{},[289],{"type":39,"tag":290,"props":291,"children":292},"tr",{},[293,299],{"type":39,"tag":294,"props":295,"children":296},"th",{},[297],{"type":45,"value":298},"Issue",{"type":39,"tag":294,"props":300,"children":301},{},[302],{"type":45,"value":303},"Workaround",{"type":39,"tag":305,"props":306,"children":307},"tbody",{},[308,322,335],{"type":39,"tag":290,"props":309,"children":310},{},[311,317],{"type":39,"tag":312,"props":313,"children":314},"td",{},[315],{"type":45,"value":316},"No internet → registration fails",{"type":39,"tag":312,"props":318,"children":319},{},[320],{"type":45,"value":321},"Internet required for registration",{"type":39,"tag":290,"props":323,"children":324},{},[325,330],{"type":39,"tag":312,"props":326,"children":327},{},[328],{"type":45,"value":329},"Streams started with glasses doffed pause when donned",{"type":39,"tag":312,"props":331,"children":332},{},[333],{"type":45,"value":334},"Unpause by tapping side of glasses",{"type":39,"tag":290,"props":336,"children":337},{},[338,348],{"type":39,"tag":312,"props":339,"children":340},{},[341,346],{"type":39,"tag":342,"props":343,"children":344},"span",{},[345],{"type":45,"value":14},{"type":45,"value":347}," Meta Ray-Ban Display: no audio feedback on pause\u002Fresume",{"type":39,"tag":312,"props":349,"children":350},{},[351],{"type":45,"value":352},"Will be fixed in future release",{"type":39,"tag":54,"props":354,"children":356},{"id":355},"adding-debug-logging",[357],{"type":45,"value":358},"Adding debug logging",{"type":39,"tag":61,"props":360,"children":364},{"className":361,"code":362,"language":363,"meta":66,"style":66},"language-swift shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import os\n\nprivate let logger = Logger(subsystem: \"com.yourapp\", category: \"Wearables\")\n\n\u002F\u002F In your streaming code:\nlogger.debug(\"Stream state changed to: \\(state)\")\nlogger.error(\"Stream error: \\(error)\")\n","swift",[365],{"type":39,"tag":69,"props":366,"children":367},{"__ignoreMap":66},[368,378,388,397,405,414,423],{"type":39,"tag":342,"props":369,"children":372},{"class":370,"line":371},"line",1,[373],{"type":39,"tag":342,"props":374,"children":375},{},[376],{"type":45,"value":377},"import os\n",{"type":39,"tag":342,"props":379,"children":381},{"class":370,"line":380},2,[382],{"type":39,"tag":342,"props":383,"children":385},{"emptyLinePlaceholder":384},true,[386],{"type":45,"value":387},"\n",{"type":39,"tag":342,"props":389,"children":391},{"class":370,"line":390},3,[392],{"type":39,"tag":342,"props":393,"children":394},{},[395],{"type":45,"value":396},"private let logger = Logger(subsystem: \"com.yourapp\", category: \"Wearables\")\n",{"type":39,"tag":342,"props":398,"children":400},{"class":370,"line":399},4,[401],{"type":39,"tag":342,"props":402,"children":403},{"emptyLinePlaceholder":384},[404],{"type":45,"value":387},{"type":39,"tag":342,"props":406,"children":408},{"class":370,"line":407},5,[409],{"type":39,"tag":342,"props":410,"children":411},{},[412],{"type":45,"value":413},"\u002F\u002F In your streaming code:\n",{"type":39,"tag":342,"props":415,"children":417},{"class":370,"line":416},6,[418],{"type":39,"tag":342,"props":419,"children":420},{},[421],{"type":45,"value":422},"logger.debug(\"Stream state changed to: \\(state)\")\n",{"type":39,"tag":342,"props":424,"children":426},{"class":370,"line":425},7,[427],{"type":39,"tag":342,"props":428,"children":429},{},[430],{"type":45,"value":431},"logger.error(\"Stream error: \\(error)\")\n",{"type":39,"tag":54,"props":433,"children":435},{"id":434},"checklist",[436],{"type":45,"value":437},"Checklist",{"type":39,"tag":128,"props":439,"children":442},{"className":440},[441],"contains-task-list",[443,455,464,473,482,491,500],{"type":39,"tag":96,"props":444,"children":447},{"className":445},[446],"task-list-item",[448,453],{"type":39,"tag":449,"props":450,"children":452},"input",{"disabled":384,"type":451},"checkbox",[],{"type":45,"value":454}," Developer Mode enabled in Meta AI app",{"type":39,"tag":96,"props":456,"children":458},{"className":457},[446],[459,462],{"type":39,"tag":449,"props":460,"children":461},{"disabled":384,"type":451},[],{"type":45,"value":463}," Meta AI app updated to compatible version",{"type":39,"tag":96,"props":465,"children":467},{"className":466},[446],[468,471],{"type":39,"tag":449,"props":469,"children":470},{"disabled":384,"type":451},[],{"type":45,"value":472}," Glasses firmware updated to compatible version",{"type":39,"tag":96,"props":474,"children":476},{"className":475},[446],[477,480],{"type":39,"tag":449,"props":478,"children":479},{"disabled":384,"type":451},[],{"type":45,"value":481}," Internet connection available for registration",{"type":39,"tag":96,"props":483,"children":485},{"className":484},[446],[486,489],{"type":39,"tag":449,"props":487,"children":488},{"disabled":384,"type":451},[],{"type":45,"value":490}," Bluetooth enabled on phone",{"type":39,"tag":96,"props":492,"children":494},{"className":493},[446],[495,498],{"type":39,"tag":449,"props":496,"children":497},{"disabled":384,"type":451},[],{"type":45,"value":499}," Correct URL scheme configured in Info.plist",{"type":39,"tag":96,"props":501,"children":503},{"className":502},[446],[504,507],{"type":39,"tag":449,"props":505,"children":506},{"disabled":384,"type":451},[],{"type":45,"value":508}," Background modes enabled (bluetooth-peripheral, external-accessory)",{"type":39,"tag":54,"props":510,"children":512},{"id":511},"links",[513],{"type":45,"value":514},"Links",{"type":39,"tag":128,"props":516,"children":517},{},[518,527,536],{"type":39,"tag":96,"props":519,"children":520},{},[521],{"type":39,"tag":265,"props":522,"children":525},{"href":523,"rel":524},"https:\u002F\u002Fwearables.developer.meta.com\u002Fdocs\u002Fknownissues",[269],[526],{"type":45,"value":280},{"type":39,"tag":96,"props":528,"children":529},{},[530],{"type":39,"tag":265,"props":531,"children":533},{"href":267,"rel":532},[269],[534],{"type":45,"value":535},"Version dependencies",{"type":39,"tag":96,"props":537,"children":538},{},[539],{"type":39,"tag":265,"props":540,"children":543},{"href":541,"rel":542},"https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fmeta-wearables-dat-ios\u002Fdiscussions",[269],[544],{"type":45,"value":545},"Troubleshooting discussions",{"type":39,"tag":547,"props":548,"children":549},"style",{},[550],{"type":45,"value":551},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":553,"total":733},[554,576,590,611,628,644,650,670,683,698,710,720],{"slug":555,"name":555,"fn":556,"description":557,"org":558,"tags":559,"stars":573,"repoUrl":574,"updatedAt":575},"relay-best-practices","write idiomatic Relay code","Best practices for writing idiomatic Relay code. ALWAYS use this skill when writing or modifying React components that use Relay for data fetching. Covers fragments, queries, mutations, pagination, and common anti-patterns. Use when you see `useFragment`, `useLazyLoadQuery`, `usePreloadedQuery`, `useMutation`, `usePaginationFragment`, `graphql` template literals, `react-relay` imports, or `__generated__\u002F*.graphql` files. Also use when asked to explain Relay concepts, debug Relay issues, or review Relay code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[560,561,564,567,570],{"name":18,"slug":19,"type":16},{"name":562,"slug":563,"type":16},"Frontend","frontend",{"name":565,"slug":566,"type":16},"GraphQL","graphql",{"name":568,"slug":569,"type":16},"React","react",{"name":571,"slug":572,"type":16},"Relay","relay",18950,"https:\u002F\u002Fgithub.com\u002Ffacebook\u002Frelay","2026-04-22T04:58:15.370563",{"slug":577,"name":577,"fn":578,"description":579,"org":580,"tags":581,"stars":573,"repoUrl":574,"updatedAt":589},"relay-performance","optimize Relay application performance","Performance best practices for Relay applications. Use when optimizing data fetching, reducing re-renders, configuring caching, or improving time to first meaningful paint. Covers query placement, @defer, pagination, fetch policies, garbage collection, fragment granularity, and server-side filtering. Companion to the relay-best-practices skill which covers correctness and architecture.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[582,583,584,587,588],{"name":562,"slug":563,"type":16},{"name":565,"slug":566,"type":16},{"name":585,"slug":586,"type":16},"Performance","performance",{"name":568,"slug":569,"type":16},{"name":571,"slug":572,"type":16},"2026-06-10T07:30:28.726513",{"slug":591,"name":591,"fn":592,"description":593,"org":594,"tags":595,"stars":608,"repoUrl":609,"updatedAt":610},"add-shape-types-to-torch-model","annotate PyTorch models with tensor shapes","Port a PyTorch model to use pyrefly's tensor shape type system (Tensor[[B, C, H, W]], Int[T]). Use this skill whenever the user wants to add shape annotations to a PyTorch model, type a model with tensor dimensions, port a model to use shape tracking, or annotate model forward methods with tensor shapes. Also use when the user mentions tensor shape ports, Int types for PyTorch, or pyrefly shape checking on a model file. Invoke BEFORE starting any model port — the skill's gated workflow prevents common failure modes.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[596,599,602,605],{"name":597,"slug":598,"type":16},"Data Modeling","data-modeling",{"name":600,"slug":601,"type":16},"Deep Learning","deep-learning",{"name":603,"slug":604,"type":16},"Python","python",{"name":606,"slug":607,"type":16},"PyTorch","pytorch",6833,"https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fpyrefly","2026-07-18T05:12:08.515952",{"slug":612,"name":612,"fn":613,"description":614,"org":615,"tags":616,"stars":22,"repoUrl":23,"updatedAt":627},"camera-streaming","configure camera streaming and photo capture","Stream, video frames, photo capture, resolution\u002Fframe rate configuration",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[617,620,623,624],{"name":618,"slug":619,"type":16},"Camera","camera",{"name":621,"slug":622,"type":16},"Hardware","hardware",{"name":14,"slug":15,"type":16},{"name":625,"slug":626,"type":16},"Video","video","2026-05-15T06:14:43.555881",{"slug":629,"name":629,"fn":630,"description":631,"org":632,"tags":633,"stars":22,"repoUrl":23,"updatedAt":643},"dat-conventions","develop iOS applications with DAT SDK","Swift patterns, async\u002Fawait, naming conventions, key types for DAT SDK iOS development",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[634,635,638,641],{"name":14,"slug":15,"type":16},{"name":636,"slug":637,"type":16},"Mobile","mobile",{"name":639,"slug":640,"type":16},"SDK","sdk",{"name":642,"slug":363,"type":16},"Swift","2026-05-15T06:14:42.334435",{"slug":4,"name":4,"fn":5,"description":6,"org":645,"tags":646,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[647,648,649],{"name":21,"slug":4,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"slug":651,"name":651,"fn":652,"description":653,"org":654,"tags":655,"stars":22,"repoUrl":23,"updatedAt":669},"display-access","manage display capabilities on wearable devices","Display capability setup, display-capable device selection, UI DSL, icons, buttons, images, and video playback",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[656,659,662,665,668],{"name":657,"slug":658,"type":16},"Design","design",{"name":660,"slug":661,"type":16},"Images","images",{"name":663,"slug":664,"type":16},"Interaction","interaction",{"name":666,"slug":667,"type":16},"UI Components","ui-components",{"name":625,"slug":626,"type":16},"2026-05-15T06:14:39.844502",{"slug":671,"name":671,"fn":672,"description":673,"org":674,"tags":675,"stars":22,"repoUrl":23,"updatedAt":682},"getting-started","set up Meta wearable SDK integration","SDK setup, Swift Package Manager integration, Info.plist configuration, and first connection to Meta glasses",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[676,679,680,681],{"name":677,"slug":678,"type":16},"Configuration","configuration",{"name":14,"slug":15,"type":16},{"name":639,"slug":640,"type":16},{"name":642,"slug":363,"type":16},"2026-05-15T06:14:41.086639",{"slug":684,"name":684,"fn":685,"description":686,"org":687,"tags":688,"stars":22,"repoUrl":23,"updatedAt":697},"mockdevice-testing","test wearable apps with mock devices","MockDeviceKit for testing without physical glasses hardware",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[689,690,691,694],{"name":14,"slug":15,"type":16},{"name":636,"slug":637,"type":16},{"name":692,"slug":693,"type":16},"QA","qa",{"name":695,"slug":696,"type":16},"Testing","testing","2026-05-15T06:14:37.406692",{"slug":699,"name":699,"fn":700,"description":701,"org":702,"tags":703,"stars":22,"repoUrl":23,"updatedAt":709},"permissions-registration","register apps with Meta AI","App registration with Meta AI, camera permission flows",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[704,705,706],{"name":618,"slug":619,"type":16},{"name":14,"slug":15,"type":16},{"name":707,"slug":708,"type":16},"Permissions","permissions","2026-05-15T06:14:46.030253",{"slug":711,"name":711,"fn":712,"description":713,"org":714,"tags":715,"stars":22,"repoUrl":23,"updatedAt":719},"sample-app-guide","build wearable apps with camera streaming","Building a complete DAT app with camera streaming and photo capture",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[716,717,718],{"name":618,"slug":619,"type":16},{"name":14,"slug":15,"type":16},{"name":636,"slug":637,"type":16},"2026-05-15T06:14:36.185947",{"slug":721,"name":721,"fn":722,"description":723,"org":724,"tags":725,"stars":22,"repoUrl":23,"updatedAt":732},"session-lifecycle","monitor device session lifecycle states","Device session states, pause\u002Fresume, availability monitoring",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[726,727,728,731],{"name":14,"slug":15,"type":16},{"name":636,"slug":637,"type":16},{"name":729,"slug":730,"type":16},"Monitoring","monitoring",{"name":585,"slug":586,"type":16},"2026-05-15T06:14:44.790925",27,{"items":735,"total":784},[736,743,750,756,764,771,778],{"slug":612,"name":612,"fn":613,"description":614,"org":737,"tags":738,"stars":22,"repoUrl":23,"updatedAt":627},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[739,740,741,742],{"name":618,"slug":619,"type":16},{"name":621,"slug":622,"type":16},{"name":14,"slug":15,"type":16},{"name":625,"slug":626,"type":16},{"slug":629,"name":629,"fn":630,"description":631,"org":744,"tags":745,"stars":22,"repoUrl":23,"updatedAt":643},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[746,747,748,749],{"name":14,"slug":15,"type":16},{"name":636,"slug":637,"type":16},{"name":639,"slug":640,"type":16},{"name":642,"slug":363,"type":16},{"slug":4,"name":4,"fn":5,"description":6,"org":751,"tags":752,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[753,754,755],{"name":21,"slug":4,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"slug":651,"name":651,"fn":652,"description":653,"org":757,"tags":758,"stars":22,"repoUrl":23,"updatedAt":669},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[759,760,761,762,763],{"name":657,"slug":658,"type":16},{"name":660,"slug":661,"type":16},{"name":663,"slug":664,"type":16},{"name":666,"slug":667,"type":16},{"name":625,"slug":626,"type":16},{"slug":671,"name":671,"fn":672,"description":673,"org":765,"tags":766,"stars":22,"repoUrl":23,"updatedAt":682},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[767,768,769,770],{"name":677,"slug":678,"type":16},{"name":14,"slug":15,"type":16},{"name":639,"slug":640,"type":16},{"name":642,"slug":363,"type":16},{"slug":684,"name":684,"fn":685,"description":686,"org":772,"tags":773,"stars":22,"repoUrl":23,"updatedAt":697},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[774,775,776,777],{"name":14,"slug":15,"type":16},{"name":636,"slug":637,"type":16},{"name":692,"slug":693,"type":16},{"name":695,"slug":696,"type":16},{"slug":699,"name":699,"fn":700,"description":701,"org":779,"tags":780,"stars":22,"repoUrl":23,"updatedAt":709},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[781,782,783],{"name":618,"slug":619,"type":16},{"name":14,"slug":15,"type":16},{"name":707,"slug":708,"type":16},9]