rnxsim 0.1.334 → 0.1.336

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/README.md +104 -76
  2. package/cli/auth.ts +2 -2
  3. package/cli/bin.ts +7 -3
  4. package/cli/bridge-flow-runner.ts +2 -2
  5. package/cli/commands/agent-wrapper.ts +1 -1
  6. package/cli/commands/agent.ts +12 -12
  7. package/cli/commands/app-fonts.ts +1 -1
  8. package/cli/commands/assert.ts +7 -7
  9. package/cli/commands/auth.ts +4 -4
  10. package/cli/commands/camera.ts +13 -13
  11. package/cli/commands/cleanup.ts +6 -6
  12. package/cli/commands/compat.ts +4 -4
  13. package/cli/commands/config.ts +2 -2
  14. package/cli/commands/control.ts +37 -43
  15. package/cli/commands/cpu-profile.ts +2 -2
  16. package/cli/commands/daemon-mac-app.ts +2 -2
  17. package/cli/commands/daemon.ts +12 -12
  18. package/cli/commands/debug.ts +22 -22
  19. package/cli/commands/desktop.ts +3 -3
  20. package/cli/commands/detox.ts +17 -17
  21. package/cli/commands/device.ts +9 -9
  22. package/cli/commands/diagnose.ts +11 -11
  23. package/cli/commands/electron.ts +7 -7
  24. package/cli/commands/film.ts +6 -6
  25. package/cli/commands/inspect/core.ts +6 -7
  26. package/cli/commands/inspect/find.ts +2 -2
  27. package/cli/commands/inspect.ts +36 -36
  28. package/cli/commands/install-desktop.ts +8 -8
  29. package/cli/commands/login.ts +6 -6
  30. package/cli/commands/maestro-generate.ts +2 -2
  31. package/cli/commands/maestro.ts +23 -23
  32. package/cli/commands/mode.ts +4 -4
  33. package/cli/commands/no-bridge-hint.ts +9 -9
  34. package/cli/commands/perf.ts +11 -11
  35. package/cli/commands/permissions.ts +5 -5
  36. package/cli/commands/profile.ts +11 -11
  37. package/cli/commands/react.ts +15 -15
  38. package/cli/commands/record.ts +15 -15
  39. package/cli/commands/report-issue.ts +2 -2
  40. package/cli/commands/reset.ts +2 -2
  41. package/cli/commands/runtime.ts +18 -18
  42. package/cli/commands/screenshot-mode.ts +5 -5
  43. package/cli/commands/screenshot.ts +12 -12
  44. package/cli/commands/screenshots-capture.ts +7 -7
  45. package/cli/commands/screenshots.ts +6 -6
  46. package/cli/commands/serve.ts +6 -6
  47. package/cli/commands/setup.ts +13 -15
  48. package/cli/commands/skills.ts +14 -14
  49. package/cli/commands/slides.ts +19 -23
  50. package/cli/commands/state.ts +2 -2
  51. package/cli/commands/storage.ts +3 -3
  52. package/cli/commands/telemetry.ts +1 -1
  53. package/cli/commands/three-mode.ts +16 -16
  54. package/cli/commands/timeline.ts +4 -4
  55. package/cli/commands/upgrade.ts +1 -1
  56. package/cli/commands/upload.ts +11 -11
  57. package/cli/commands/version.ts +3 -5
  58. package/cli/commands/what-happened.ts +11 -11
  59. package/cli/drivers/electron.ts +3 -3
  60. package/cli/hints.ts +8 -8
  61. package/cli/recording-access.ts +1 -1
  62. package/cli/ws-bridge.ts +5 -5
  63. package/dist-cli/bin.js +5 -5
  64. package/dist-cli/chunks/{agent-XB27DMQ6.js → agent-PZLF36FY.js} +14 -14
  65. package/dist-cli/chunks/{agent-wrapper-B3HNORTW.js → agent-wrapper-6TA43SJ2.js} +3 -3
  66. package/dist-cli/chunks/app-fonts-MTZTCJUY.js +4 -0
  67. package/dist-cli/chunks/{assert-6CUEOSSO.js → assert-2CVO2TYX.js} +12 -12
  68. package/dist-cli/chunks/auth-LKXFRFOT.js +12 -0
  69. package/dist-cli/chunks/{beta-H5SAI4RD.js → beta-OATC5IPA.js} +2 -2
  70. package/dist-cli/chunks/camera-VX65VO5N.js +33 -0
  71. package/dist-cli/chunks/{chunk-R3JUSXCG.js → chunk-262YA5CJ.js} +2 -2
  72. package/dist-cli/chunks/{chunk-2W7J4B3D.js → chunk-2J4OBR7W.js} +18 -18
  73. package/dist-cli/chunks/{chunk-GO7WTRY4.js → chunk-2PFDFGOG.js} +1 -1
  74. package/dist-cli/chunks/{chunk-BH3NYOFU.js → chunk-2Q6S7X5O.js} +4 -4
  75. package/dist-cli/chunks/{chunk-JZFZ7NGF.js → chunk-2VOFUIKQ.js} +9 -9
  76. package/dist-cli/chunks/chunk-3QCSDI3B.js +5 -0
  77. package/dist-cli/chunks/{chunk-IZITFEO5.js → chunk-4532OPNZ.js} +3 -3
  78. package/dist-cli/chunks/{chunk-S5Q2TACY.js → chunk-5YCVNKD7.js} +23 -23
  79. package/dist-cli/chunks/{chunk-R5KHC7VZ.js → chunk-6ALTVOXE.js} +6 -6
  80. package/dist-cli/chunks/chunk-6TN3YWA6.js +124 -0
  81. package/dist-cli/chunks/{chunk-KSJTW5ZW.js → chunk-7FHAHI5V.js} +2 -2
  82. package/dist-cli/chunks/{chunk-TKTAVBKB.js → chunk-7PMNRG53.js} +4 -4
  83. package/dist-cli/chunks/{chunk-752UYKC6.js → chunk-ARFQOYRO.js} +1 -1
  84. package/dist-cli/chunks/chunk-BHXQ7MUW.js +5 -0
  85. package/dist-cli/chunks/{chunk-HMZS7LD4.js → chunk-BIZE6NBI.js} +1 -1
  86. package/dist-cli/chunks/{chunk-INV6BZQY.js → chunk-BOZARB6P.js} +2 -2
  87. package/dist-cli/chunks/chunk-BVGUTE2T.js +74 -0
  88. package/dist-cli/chunks/{chunk-K2NYE3XT.js → chunk-BYOFHYKS.js} +1 -1
  89. package/dist-cli/chunks/{chunk-TLAYQHXB.js → chunk-DMD24WAG.js} +1 -1
  90. package/dist-cli/chunks/{chunk-PSVQUW3M.js → chunk-EAPHUH2R.js} +2 -2
  91. package/dist-cli/chunks/{chunk-ELFSL6AX.js → chunk-FMWEQNK2.js} +2 -2
  92. package/dist-cli/chunks/{chunk-OJJUPWLY.js → chunk-FWGDP2J4.js} +2 -2
  93. package/dist-cli/chunks/{chunk-VCBH7RDB.js → chunk-G3FVXFPF.js} +2 -2
  94. package/dist-cli/chunks/{chunk-U5JW25P3.js → chunk-GI3GZ54J.js} +1 -1
  95. package/dist-cli/chunks/{chunk-AH7KCTAP.js → chunk-HDHHEWEA.js} +2 -2
  96. package/dist-cli/chunks/{chunk-G2UNJ4TN.js → chunk-JIWE66VU.js} +1 -1
  97. package/dist-cli/chunks/{chunk-7HXPSUI6.js → chunk-KDRDDPNN.js} +1 -1
  98. package/dist-cli/chunks/{chunk-ANO5CHPQ.js → chunk-KPL344LX.js} +2 -2
  99. package/dist-cli/chunks/{chunk-3OGSYYLZ.js → chunk-M2OWBYUG.js} +1 -1
  100. package/dist-cli/chunks/{chunk-7D2P57SZ.js → chunk-M2XGXP7G.js} +1 -1
  101. package/dist-cli/chunks/{chunk-KV653SVK.js → chunk-MARPC3GM.js} +2 -2
  102. package/dist-cli/chunks/{chunk-ZYWOBHVL.js → chunk-MQES3MTN.js} +2 -2
  103. package/dist-cli/chunks/{chunk-ZVBWTXV6.js → chunk-NDLRQH7U.js} +5 -5
  104. package/dist-cli/chunks/{chunk-DECDURI3.js → chunk-NJMBQLAU.js} +2 -2
  105. package/dist-cli/chunks/{chunk-X6LGVNYE.js → chunk-NL2HXO7U.js} +1 -1
  106. package/dist-cli/chunks/{chunk-XCI6HRMH.js → chunk-NVPZLIMW.js} +1 -1
  107. package/dist-cli/chunks/{chunk-CYXIDSTO.js → chunk-NWVH2X7F.js} +2 -2
  108. package/dist-cli/chunks/{chunk-PFOKFWHU.js → chunk-OUAYBJ4G.js} +2 -2
  109. package/dist-cli/chunks/{chunk-WJJYIBVW.js → chunk-OXRDTNVL.js} +2 -2
  110. package/dist-cli/chunks/{chunk-Q2KHHFU3.js → chunk-QIVOOERS.js} +2 -2
  111. package/dist-cli/chunks/{chunk-WXUWD5JK.js → chunk-RZ2PXHA7.js} +11 -11
  112. package/dist-cli/chunks/{chunk-32AHRTE2.js → chunk-S33NCWJV.js} +2 -2
  113. package/dist-cli/chunks/{chunk-YX7RESF2.js → chunk-STMCT3G3.js} +2 -2
  114. package/dist-cli/chunks/{chunk-25BPBDWK.js → chunk-SV6NVD7P.js} +1 -1
  115. package/dist-cli/chunks/{chunk-62GN45A4.js → chunk-TA4GBBGC.js} +2 -2
  116. package/dist-cli/chunks/{chunk-MCX66YUZ.js → chunk-TV457FWW.js} +2 -2
  117. package/dist-cli/chunks/chunk-UB3JHBDW.js +4 -0
  118. package/dist-cli/chunks/{chunk-CLJ5KDZQ.js → chunk-UU2KMAIA.js} +1 -1
  119. package/dist-cli/chunks/chunk-UZCNKUSS.js +15 -0
  120. package/dist-cli/chunks/{chunk-R7XQX7CV.js → chunk-V4OZDPTA.js} +1 -1
  121. package/dist-cli/chunks/{chunk-UBZ7VUVM.js → chunk-WBTT5WIO.js} +1 -1
  122. package/dist-cli/chunks/chunk-YYBC6VB2.js +30 -0
  123. package/dist-cli/chunks/{chunk-PPTUVZET.js → chunk-ZI6YQKD6.js} +2 -2
  124. package/dist-cli/chunks/{cleanup-L5RZFZHK.js → cleanup-ZC5OVBIM.js} +10 -10
  125. package/dist-cli/chunks/cli-version-NOYHDN6P.js +4 -0
  126. package/dist-cli/chunks/{compat-6UV3RZBK.js → compat-BS2E7XDD.js} +9 -9
  127. package/dist-cli/chunks/{config-PCDG3T44.js → config-VDCDUYMZ.js} +5 -5
  128. package/dist-cli/chunks/{control-3F5UWGSP.js → control-IKS3CUP4.js} +2 -2
  129. package/dist-cli/chunks/daemon-MM3C4O2B.js +4 -0
  130. package/dist-cli/chunks/{debug-U3AW3DE7.js → debug-BKMZ5SRR.js} +17 -17
  131. package/dist-cli/chunks/desktop-FZQHSNF7.js +31 -0
  132. package/dist-cli/chunks/detox-52AM3DKY.js +52 -0
  133. package/dist-cli/chunks/{device-Z7QIRPK3.js → device-7FL5Y542.js} +11 -11
  134. package/dist-cli/chunks/{diagnose-XTLKRGK4.js → diagnose-YT4BKJ7I.js} +12 -12
  135. package/dist-cli/chunks/{disk-cleanup-EGA7FHY2.js → disk-cleanup-O6ICYLAC.js} +2 -2
  136. package/dist-cli/chunks/drivers-YY3YRD2L.js +4 -0
  137. package/dist-cli/chunks/{film-VCD3LX7E.js → film-7YBOFSOZ.js} +9 -9
  138. package/dist-cli/chunks/flow-I4PVS52A.js +4 -0
  139. package/dist-cli/chunks/help-35ESSWJH.js +4 -0
  140. package/dist-cli/chunks/{hidden-runtime-alias-WIG4O25J.js → hidden-runtime-alias-M3UFKZB6.js} +2 -2
  141. package/dist-cli/chunks/{home-paths-35K3WNLQ.js → home-paths-VW7G7LVZ.js} +2 -2
  142. package/dist-cli/chunks/inspect-PCJ6C2BN.js +4 -0
  143. package/dist-cli/chunks/install-desktop-NGQWMGQO.js +4 -0
  144. package/dist-cli/chunks/{login-JMQOKJS4.js → login-5VAHTGHC.js} +6 -6
  145. package/dist-cli/chunks/{logout-SBZ42HSW.js → logout-CXZFNMYF.js} +2 -2
  146. package/dist-cli/chunks/{maestro-3ZOPLMLN.js → maestro-THMBR6L3.js} +25 -25
  147. package/dist-cli/chunks/{maestro-generate-UZ75KHE6.js → maestro-generate-R73J53KE.js} +3 -3
  148. package/dist-cli/chunks/mode-5RJYFW76.js +26 -0
  149. package/dist-cli/chunks/{optional-demo-registry-B5RN64RF.js → optional-demo-registry-U7SCVX5U.js} +2 -2
  150. package/dist-cli/chunks/{perf-HDAR6QCJ.js → perf-AW6LG6FW.js} +28 -28
  151. package/dist-cli/chunks/permissions-6JWNMXYT.js +13 -0
  152. package/dist-cli/chunks/record-LLPM3BJT.js +72 -0
  153. package/dist-cli/chunks/{report-issue-45ECETI7.js → report-issue-YO2NAMJS.js} +4 -4
  154. package/dist-cli/chunks/reset-5LDPRL3W.js +4 -0
  155. package/dist-cli/chunks/runtime-IAICY2UL.js +4 -0
  156. package/dist-cli/chunks/{screenshot-command-ZTTTH5DS.js → screenshot-command-X7ECU2SK.js} +34 -34
  157. package/dist-cli/chunks/{screenshot-layers-NBYY3W7W.js → screenshot-layers-E7GLIOHG.js} +2 -2
  158. package/dist-cli/chunks/{screenshots-capture-EPPIKH5Q.js → screenshots-capture-TKR2YV6U.js} +11 -11
  159. package/dist-cli/chunks/{serve-4I2GY23Q.js → serve-HFNYO3YS.js} +16 -16
  160. package/dist-cli/chunks/setup-2HQHROP3.js +32 -0
  161. package/dist-cli/chunks/{skills-FBQ52ZMO.js → skills-PFCCKOPW.js} +16 -16
  162. package/dist-cli/chunks/{state-LQEZWXEX.js → state-NOCC6IGB.js} +5 -5
  163. package/dist-cli/chunks/storage-4SYN4ZWP.js +37 -0
  164. package/dist-cli/chunks/store-7QDSVAZ4.js +4 -0
  165. package/dist-cli/chunks/telemetry-LGTXJEJC.js +4 -0
  166. package/dist-cli/chunks/{timeline-3AIKN2SF.js → timeline-E2SFUV76.js} +6 -6
  167. package/dist-cli/chunks/{upgrade-HYPCBXGF.js → upgrade-KD76JQCK.js} +2 -2
  168. package/dist-cli/chunks/upload-FI2TS5S7.js +4 -0
  169. package/dist-cli/chunks/version-B23A4BFH.js +6 -0
  170. package/dist-cli/chunks/{web-Q6TI7YFH.js → web-6OAWYV5Z.js} +2 -2
  171. package/dist-cli/chunks/{what-happened-4PNRFBVS.js → what-happened-IYXUFM72.js} +16 -16
  172. package/dist-lib/agent-daemon-client.cjs +5 -5
  173. package/dist-lib/agent-events.cjs +1 -1
  174. package/dist-lib/agent-identity.cjs +1 -1
  175. package/dist-lib/agent-sessions.cjs +4 -4
  176. package/dist-lib/attached-projects.cjs +1 -1
  177. package/dist-lib/auth/shared-session.cjs +1 -1
  178. package/dist-lib/backend-origin.cjs +1 -1
  179. package/dist-lib/beta.cjs +1 -1
  180. package/dist-lib/beta.mjs +1 -1
  181. package/dist-lib/bridge-constants.cjs +1 -1
  182. package/dist-lib/bridge-contract.cjs +1 -1
  183. package/dist-lib/cli-constants.cjs +1 -1
  184. package/dist-lib/config.cjs +1 -1
  185. package/dist-lib/detox/index.cjs +1 -1
  186. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  187. package/dist-lib/home-paths.cjs +1 -1
  188. package/dist-lib/host/bridge-host.cjs +7 -7
  189. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  190. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  191. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  192. package/dist-lib/host/websocket-proxy.cjs +1 -1
  193. package/dist-lib/index.cjs +248 -98
  194. package/dist-lib/jump-to-source-babel.cjs +1 -1
  195. package/dist-lib/menu.cjs +2 -2
  196. package/dist-lib/menu.mjs +2 -2
  197. package/dist-lib/metro-host-modules/react-dom.js +6 -0
  198. package/dist-lib/metro-host-modules/react-native-web.js +6 -0
  199. package/dist-lib/metro-host-modules/react-native.js +6 -0
  200. package/dist-lib/metro-host-modules/react.js +6 -0
  201. package/dist-lib/metro-host-modules/react__jsx-dev-runtime.js +6 -0
  202. package/dist-lib/metro-host-modules/react__jsx-runtime.js +6 -0
  203. package/dist-lib/metro-production-bundle.cjs +72 -0
  204. package/dist-lib/metro-production-bundle.mjs +44 -0
  205. package/dist-lib/metro.cjs +152 -8
  206. package/dist-lib/profiles.cjs +1 -1
  207. package/dist-lib/public-brand.cjs +2 -2
  208. package/dist-lib/react-native-host-modules.cjs +50 -0
  209. package/dist-lib/render-mode.cjs +1 -1
  210. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  211. package/dist-lib/sdk.cjs +6 -7
  212. package/dist-lib/sdk.mjs +6 -7
  213. package/dist-lib/skills.cjs +71 -77
  214. package/dist-lib/vite.cjs +104 -85
  215. package/package.json +15 -2
  216. package/scripts/preuninstall.cjs +1 -1
  217. package/skills/contrast/SKILL.md +67 -75
  218. package/skills/rnx-debug/SKILL.md +84 -84
  219. package/skills/rnx-perf/SKILL.md +8 -8
  220. package/skills/rnx-setup/SKILL.md +54 -54
  221. package/skills/rnx-test/SKILL.md +35 -35
  222. package/skills/rnx-visual/SKILL.md +18 -18
  223. package/src/agent-daemon-client.ts +2 -2
  224. package/src/agent-sessions.ts +2 -2
  225. package/src/connect.ts +6 -6
  226. package/src/disk-cleanup.ts +1 -1
  227. package/src/home-paths.ts +1 -1
  228. package/src/host/bridge-host.ts +6 -6
  229. package/src/index.ts +1 -1
  230. package/src/metro-host-modules/react-dom.js +6 -0
  231. package/src/metro-host-modules/react-native-web.js +6 -0
  232. package/src/metro-host-modules/react-native.js +6 -0
  233. package/src/metro-host-modules/react.js +6 -0
  234. package/src/metro-host-modules/react__jsx-dev-runtime.js +6 -0
  235. package/src/metro-host-modules/react__jsx-runtime.js +6 -0
  236. package/src/metro-plugin.ts +249 -10
  237. package/src/metro-production-bundle.ts +51 -0
  238. package/src/public-brand.ts +1 -1
  239. package/src/react-native-host-modules.ts +25 -0
  240. package/src/runtime-assets.ts +1 -1
  241. package/src/sim-client.ts +1 -1
  242. package/src/vite-plugin-one.ts +171 -145
  243. package/dist-cli/chunks/app-fonts-R3Z7ZW4A.js +0 -4
  244. package/dist-cli/chunks/auth-LAGALWLO.js +0 -12
  245. package/dist-cli/chunks/camera-QN6WUAYK.js +0 -33
  246. package/dist-cli/chunks/chunk-2A4XQAO5.js +0 -5
  247. package/dist-cli/chunks/chunk-CFRBWE4I.js +0 -124
  248. package/dist-cli/chunks/chunk-FSS73GUP.js +0 -4
  249. package/dist-cli/chunks/chunk-KKLCABLJ.js +0 -15
  250. package/dist-cli/chunks/chunk-L4JC72JR.js +0 -5
  251. package/dist-cli/chunks/chunk-LGO27KAL.js +0 -30
  252. package/dist-cli/chunks/chunk-ZS3IA2TO.js +0 -74
  253. package/dist-cli/chunks/cli-version-YLZLS2WD.js +0 -4
  254. package/dist-cli/chunks/daemon-7KWRXNTD.js +0 -4
  255. package/dist-cli/chunks/desktop-NXZL7FFL.js +0 -31
  256. package/dist-cli/chunks/detox-ZVCZR6RI.js +0 -52
  257. package/dist-cli/chunks/drivers-NCRG3DPA.js +0 -4
  258. package/dist-cli/chunks/flow-XTAZ54NO.js +0 -4
  259. package/dist-cli/chunks/help-HXJS23VT.js +0 -4
  260. package/dist-cli/chunks/inspect-FGQNWT3J.js +0 -4
  261. package/dist-cli/chunks/install-desktop-PRZH7KML.js +0 -4
  262. package/dist-cli/chunks/mode-PUJBFJV2.js +0 -26
  263. package/dist-cli/chunks/permissions-FG2BLOZH.js +0 -13
  264. package/dist-cli/chunks/record-2733FYSQ.js +0 -72
  265. package/dist-cli/chunks/reset-7RTBJQT7.js +0 -4
  266. package/dist-cli/chunks/runtime-FWAZCY6A.js +0 -4
  267. package/dist-cli/chunks/setup-FAQDSB56.js +0 -32
  268. package/dist-cli/chunks/storage-6CRLZNEX.js +0 -37
  269. package/dist-cli/chunks/store-PNV6NRDU.js +0 -4
  270. package/dist-cli/chunks/telemetry-ZS6SFANV.js +0 -4
  271. package/dist-cli/chunks/upload-EMRR47KT.js +0 -4
  272. package/dist-cli/chunks/version-P4NCNAW7.js +0 -6
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rnx-debug
3
- description: Debug rendering, animation, gesture, performance, and accessibility issues in a React Native app running under rnx. Reach for this whenever an animation looks wrong (janky, stutters, snaps, only updates once, or doesn't move at all), a swipe/transition/gesture misbehaves or feels broken, scrolling drops frames or feels slow, the UI renders the wrong tree/props, or a screen reader can't reach something — and drive the rnxsim CLI debug tooling first, not screenshots or ad-hoc logging.
3
+ description: Debug rendering, animation, gesture, performance, and accessibility issues in a React Native app running under rnx. Reach for this whenever an animation looks wrong (janky, stutters, snaps, only updates once, or doesn't move at all), a swipe/transition/gesture misbehaves or feels broken, scrolling drops frames or feels slow, the UI renders the wrong tree/props, or a screen reader can't reach something — and drive the rnx CLI debug tooling first, not screenshots or ad-hoc logging.
4
4
  ---
5
5
 
6
6
  # rnx debug
@@ -12,13 +12,13 @@ same diff/snapshot workflow. start here for any rendering, interaction,
12
12
  event-order, or correctness question. for pixel-level rendering fidelity
13
13
  load `/rnx-visual` instead.
14
14
 
15
- > needs a connected, pinned sim. if `rnxsim describe` errors, load
15
+ > needs a connected, pinned sim. if `rnx describe` errors, load
16
16
  > `/rnx-setup` first.
17
17
 
18
18
  ## principle — drive the CLI, don't probe by hand
19
19
 
20
20
  for any rendering, animation, gesture, or interaction bug, reach for the
21
- rnxsim CLI debug tooling **first** — `describe` and `find` to read the
21
+ rnx CLI debug tooling **first** — `describe` and `find` to read the
22
22
  tree, `debug snapshot` + `debug diff` to capture before/after, `debug
23
23
  recent` on a channel and `perf shell` for frame-by-frame stats, and the
24
24
  timeline for "what just happened". **do not** debug these by eye with
@@ -49,8 +49,8 @@ regression test. a pile of ad-hoc logs helps no one and gets deleted.
49
49
 
50
50
  ## anti-patterns (apply to every branch)
51
51
 
52
- - **`a1`/`a2`/`b0` style ids mean rnxsim sims, never browser tabs.** when a user
53
- says "look at a3", that's the `rnxsim list` sim id. do not open chrome
52
+ - **`a1`/`a2`/`b0` style ids mean rnx sims, never browser tabs.** when a user
53
+ says "look at a3", that's the `rnx list` sim id. do not open chrome
54
54
  MCP unless the user explicitly says "use chrome" — the canvas has no
55
55
  DOM to inspect anyway.
56
56
  - **the CLI auto-settles. don't add `sleep`.** every read waits up to
@@ -62,10 +62,10 @@ regression test. a pile of ad-hoc logs helps no one and gets deleted.
62
62
  changes, and duplicate strings. add `testID` during implementation and
63
63
  query against it.
64
64
  - **pin a sim once.** if more than one is live, an unpinned command
65
- refuses to choose. run `rnxsim use <id>` at the start of the workflow.
66
- - **keep one sim and reuse its browser tab.** before `rnxsim open`, run
67
- `rnxsim list --all`. pin the target and use `rnxsim do reload`; a plain
68
- `rnxsim open <target>` also navigates the saved sim. reserve `--new` for a
65
+ refuses to choose. run `rnx use <id>` at the start of the workflow.
66
+ - **keep one sim and reuse its browser tab.** before `rnx open`, run
67
+ `rnx list --all`. pin the target and use `rnx do reload`; a plain
68
+ `rnx open <target>` also navigates the saved sim. reserve `--new` for a
69
69
  genuinely concurrent sim. repeated browser trees consume memory and CPU on a
70
70
  shared machine.
71
71
  - **`debug eval` is an escape hatch.** if a top-level command feels
@@ -85,13 +85,13 @@ fetches resolve. the timeline records them so you can ask "what
85
85
  happened" instead of racing the UI with `find`.
86
86
 
87
87
  ```sh
88
- rnxsim timeline start # arm recording (cheap kinds default-on)
88
+ rnx timeline start # arm recording (cheap kinds default-on)
89
89
  # reproduce the flow
90
- rnxsim what-happened # events since the last CLI call
91
- rnxsim what-happened --since 10s # absolute window
92
- rnxsim what-happened --kinds toast,fetch # filter to a few kinds
93
- rnxsim what-happened --summary # one-line counts
94
- rnxsim what-happened --flow # section events by screen/route
90
+ rnx what-happened # events since the last CLI call
91
+ rnx what-happened --since 10s # absolute window
92
+ rnx what-happened --kinds toast,fetch # filter to a few kinds
93
+ rnx what-happened --summary # one-line counts
94
+ rnx what-happened --flow # section events by screen/route
95
95
  ```
96
96
 
97
97
  semantic kinds the timeline understands: `keyboard`, `screen`, `route`,
@@ -99,12 +99,12 @@ semantic kinds the timeline understands: `keyboard`, `screen`, `route`,
99
99
  `gesture`, `text-input`, `reanimated`, `animation`, `fetch`, `console`,
100
100
  `app-launch`, `shell`. cheap kinds record by default; heavier kinds
101
101
  (scroll, gesture, text-input, reanimated, animation) opt in via
102
- `rnxsim timeline start scroll,gesture,…`.
102
+ `rnx timeline start scroll,gesture,…`.
103
103
 
104
104
  every other CLI command also prints a one-line footer for events since
105
105
  the last call — that's the headline indicator. when the footer is empty,
106
106
  there's nothing new to look at; when it says `since last: 1 error · 1
107
- toast · 1 screen push`, run `rnxsim what-happened` to see the detail.
107
+ toast · 1 screen push`, run `rnx what-happened` to see the detail.
108
108
 
109
109
  > reach for the timeline first when the question involves *something
110
110
  > that appeared briefly and disappeared*. it's faster than a screenshot
@@ -125,11 +125,11 @@ need a manual wait when:
125
125
  (no pulsing dots, no shimmer, no looping Lottie).
126
126
 
127
127
  ```sh
128
- rnxsim do settle 5 # wait up to 5s for layout stability
129
- rnxsim wait idle --max-ms 5000 # same thing under the `wait` verb
130
- rnxsim wait idle --strict # also require animation flags clear
131
- rnxsim do tap-id play --no-wait # skip auto-settle on one command
132
- SOOTSIM_NO_AUTO_WAIT=1 rnxsim ... # disable auto-settle for a lane
128
+ rnx do settle 5 # wait up to 5s for layout stability
129
+ rnx wait idle --max-ms 5000 # same thing under the `wait` verb
130
+ rnx wait idle --strict # also require animation flags clear
131
+ rnx do tap-id play --no-wait # skip auto-settle on one command
132
+ SOOTSIM_NO_AUTO_WAIT=1 rnx ... # disable auto-settle for a lane
133
133
  ```
134
134
 
135
135
  ## branch — debugging
@@ -137,22 +137,22 @@ SOOTSIM_NO_AUTO_WAIT=1 rnxsim ... # disable auto-settle for a lane
137
137
  the playbook for "wrong tree / wrong props / wrong handler":
138
138
 
139
139
  ```sh
140
- rnxsim describe # what's on screen now
141
- rnxsim get errors 5 # any console smoke?
142
- rnxsim find --testid <node> # locate the suspect
143
- rnxsim debug snapshot before
140
+ rnx describe # what's on screen now
141
+ rnx get errors 5 # any console smoke?
142
+ rnx find --testid <node> # locate the suspect
143
+ rnx debug snapshot before
144
144
  # reproduce
145
- rnxsim debug snapshot after
146
- rnxsim debug diff before after # structural diff: what changed?
147
- rnxsim what-happened # timeline events during the repro
145
+ rnx debug snapshot after
146
+ rnx debug diff before after # structural diff: what changed?
147
+ rnx what-happened # timeline events during the repro
148
148
  ```
149
149
 
150
150
  for nested scroll ownership or momentum transfer, compare the shell's resolved
151
151
  gesture chain with the published scroll registry:
152
152
 
153
153
  ```sh
154
- rnxsim debug state scroll-input
155
- rnxsim debug state scroll-mirror
154
+ rnx debug state scroll-input
155
+ rnx debug state scroll-mirror
156
156
  ```
157
157
 
158
158
  reading `describe` output:
@@ -169,9 +169,9 @@ for transitions, alerts, native UI, or anything spanning the shell ↔
169
169
  tenant boundary, lean on the timeline before reaching for traces:
170
170
 
171
171
  ```sh
172
- rnxsim timeline start
172
+ rnx timeline start
173
173
  # reproduce the launch / dismiss / alert
174
- rnxsim what-happened --kinds shell,alert,screen,animation
174
+ rnx what-happened --kinds shell,alert,screen,animation
175
175
  ```
176
176
 
177
177
  you're done when:
@@ -184,10 +184,10 @@ you're done when:
184
184
  ## branch — performance
185
185
 
186
186
  ```sh
187
- rnxsim perf shell start # arm capture (also clears prior frames)
187
+ rnx perf shell start # arm capture (also clears prior frames)
188
188
  # reproduce the slow interaction
189
- rnxsim perf shell stop # full report, including worst frames
190
- rnxsim perf shell stop --json # machine-readable summary
189
+ rnx perf shell stop # full report, including worst frames
190
+ rnx perf shell stop --json # machine-readable summary
191
191
  ```
192
192
 
193
193
  `perf shell` output:
@@ -209,8 +209,8 @@ budget. **p95 >20 ms is visible jank for a scrolling surface.**
209
209
  profiling a whole flow:
210
210
 
211
211
  ```sh
212
- rnxsim maestro test .maestro/scroll-feed.yaml --profile # per-step + frame stats
213
- rnxsim perf cpu --duration 5 --output /tmp/trace.cpuprofile # sampled CPU
212
+ rnx maestro test .maestro/scroll-feed.yaml --profile # per-step + frame stats
213
+ rnx perf cpu --duration 5 --output /tmp/trace.cpuprofile # sampled CPU
214
214
  ```
215
215
 
216
216
  common patterns → first probe:
@@ -227,11 +227,11 @@ debug channels that help, but cost 1–3 ms/frame on their own — enable
227
227
  only what you're investigating:
228
228
 
229
229
  ```sh
230
- rnxsim debug enable layout,onlayout,render,animated
230
+ rnx debug enable layout,onlayout,render,animated
231
231
  # reproduce
232
- rnxsim debug recent layout 20 # last 20 layout events
233
- rnxsim debug recent render 20 # last 20 draw passes
234
- rnxsim debug disable layout,onlayout,render,animated
232
+ rnx debug recent layout 20 # last 20 layout events
233
+ rnx debug recent render 20 # last 20 draw passes
234
+ rnx debug disable layout,onlayout,render,animated
235
235
  ```
236
236
 
237
237
  you're done when: a p95 number for the interaction + named hot path +
@@ -251,9 +251,9 @@ watch out for:
251
251
  ## branch — accessibility
252
252
 
253
253
  ```sh
254
- rnxsim get a11y # roles, labels, hints, and target geometry
255
- rnxsim get layout --styling # boxes, styles, and native pixel contrast
256
- rnxsim describe --a11y # inline a11y info on every node
254
+ rnx get a11y # roles, labels, hints, and target geometry
255
+ rnx get layout --styling # boxes, styles, and native pixel contrast
256
+ rnx describe --a11y # inline a11y info on every node
257
257
  ```
258
258
 
259
259
  native styled layout reads rendered pixels rather than inferring contrast from
@@ -269,9 +269,9 @@ contrast summary format:
269
269
  finding offenders fast:
270
270
 
271
271
  ```sh
272
- rnxsim find --no-label # interactive nodes missing label
273
- rnxsim find --no-role # interactive nodes missing role
274
- rnxsim find --pressable --max-dim 44 # undersized tap targets
272
+ rnx find --no-label # interactive nodes missing label
273
+ rnx find --no-role # interactive nodes missing role
274
+ rnx find --pressable --max-dim 44 # undersized tap targets
275
275
  ```
276
276
 
277
277
  what gets checked:
@@ -280,7 +280,7 @@ what gets checked:
280
280
  - **missing roles** — `Pressable`/`Touchable` without `accessibilityRole`
281
281
  - **missing hints** — complex interactions without `accessibilityHint`
282
282
  - **touch target size** — tappable nodes with hitSlop-expanded rect <44×44
283
- - **contrast** — run `rnxsim get layout --styling`; it samples final text and
283
+ - **contrast** — run `rnx get layout --styling`; it samples final text and
284
284
  text-suppressed background pixels, including gradients and composited opacity
285
285
  - **label / visible-text mismatch** — label that reads differently from
286
286
  the text VoiceOver would fall back to (often a translation bug)
@@ -297,11 +297,11 @@ triage order:
297
297
  fix → verify loop (the same shape as debugging):
298
298
 
299
299
  ```sh
300
- rnxsim get a11y > before-a11y.txt
301
- rnxsim get layout --styling --json > before-layout.json
300
+ rnx get a11y > before-a11y.txt
301
+ rnx get layout --styling --json > before-layout.json
302
302
  # apply the fix
303
- rnxsim get a11y > after-a11y.txt
304
- rnxsim get layout --styling --json > after-layout.json
303
+ rnx get a11y > after-a11y.txt
304
+ rnx get layout --styling --json > after-layout.json
305
305
  diff before-a11y.txt after-a11y.txt
306
306
  diff before-layout.json after-layout.json
307
307
  ```
@@ -372,45 +372,45 @@ type names sneak in).
372
372
  ### finding and interacting
373
373
 
374
374
  ```sh
375
- rnxsim describe # all visible elements with styles
376
- rnxsim describe button # filter by text/role/label/testID
377
- rnxsim describe --testid foo # only the subtree under a testID
378
- rnxsim describe --verbose # include every style property
379
-
380
- rnxsim find "Sign in" # by text content
381
- rnxsim find --testid loginButton
382
- rnxsim find --role button
383
- rnxsim find --pressable
384
- rnxsim find --visible # only on-screen nodes
385
-
386
- rnxsim do tap-id loginButton # tap by testID (preferred)
387
- rnxsim do tap-text "Submit" # tap by text
388
- rnxsim do tap 196 400 # tap at coordinates
389
- rnxsim do type "hello world" # type into focused input
390
- rnxsim do type-into emailInput "a@b" # focus then type
391
- rnxsim do key return # special key (return, backspace, …)
392
- rnxsim do scroll feed-list 0 500 # scroll a testID by dx/dy
393
- rnxsim do swipe feed-list left # directional swipe
394
- rnxsim do long-press messageRow 800 # ms hold
375
+ rnx describe # all visible elements with styles
376
+ rnx describe button # filter by text/role/label/testID
377
+ rnx describe --testid foo # only the subtree under a testID
378
+ rnx describe --verbose # include every style property
379
+
380
+ rnx find "Sign in" # by text content
381
+ rnx find --testid loginButton
382
+ rnx find --role button
383
+ rnx find --pressable
384
+ rnx find --visible # only on-screen nodes
385
+
386
+ rnx do tap-id loginButton # tap by testID (preferred)
387
+ rnx do tap-text "Submit" # tap by text
388
+ rnx do tap 196 400 # tap at coordinates
389
+ rnx do type "hello world" # type into focused input
390
+ rnx do type-into emailInput "a@b" # focus then type
391
+ rnx do key return # special key (return, backspace, …)
392
+ rnx do scroll feed-list 0 500 # scroll a testID by dx/dy
393
+ rnx do swipe feed-list left # directional swipe
394
+ rnx do long-press messageRow 800 # ms hold
395
395
  ```
396
396
 
397
397
  ### errors and requests
398
398
 
399
399
  ```sh
400
- rnxsim get errors 5 # last 5 console errors
401
- rnxsim get warnings 5
402
- rnxsim get requests 5 # recent failed requests
403
- rnxsim logs --since 30s # recent console output
404
- rnxsim network --since 30s # recent network traffic
400
+ rnx get errors 5 # last 5 console errors
401
+ rnx get warnings 5
402
+ rnx get requests 5 # recent failed requests
403
+ rnx logs --since 30s # recent console output
404
+ rnx network --since 30s # recent network traffic
405
405
  ```
406
406
 
407
407
  ### snapshots and diff
408
408
 
409
409
  ```sh
410
- rnxsim debug snapshot before
410
+ rnx debug snapshot before
411
411
  # interact
412
- rnxsim debug snapshot after
413
- rnxsim debug diff before after # added / removed / changed nodes
412
+ rnx debug snapshot after
413
+ rnx debug diff before after # added / removed / changed nodes
414
414
  ```
415
415
 
416
416
  ### debug channels
@@ -419,7 +419,7 @@ useful: `animated`, `layout`, `onlayout`, `render`, `sheets`, `portals`,
419
419
  `gesture`, `scroll`, `text`, `image`.
420
420
 
421
421
  ```sh
422
- rnxsim debug enable animated,layout,sheets,portals
423
- rnxsim debug recent layout 20 # last 20 events on the channel
424
- rnxsim debug disable animated,layout,sheets,portals
422
+ rnx debug enable animated,layout,sheets,portals
423
+ rnx debug recent layout 20 # last 20 events on the channel
424
+ rnx debug disable animated,layout,sheets,portals
425
425
  ```
@@ -57,7 +57,7 @@ indict, remeasure — and every wasted week came from skipping a step.
57
57
 
58
58
  ### presentation proof must stay outside the simulator
59
59
 
60
- Performance acceptance must not use `rnxsim record`, `liveComposite`,
60
+ Performance acceptance must not use `rnx record`, `liveComposite`,
61
61
  `captureBitmaps`, Chrome screencast, or another in-page frame-copy path. Those
62
62
  paths add work to the simulator or browser and can change the cadence being
63
63
  measured. Record the visible window with the operating system's native screen
@@ -120,10 +120,10 @@ property on the transform owner can move the whole trajectory to the browser's
120
120
  main thread. Paint stable decoration once or give it a distinct layer.
121
121
 
122
122
  ```sh
123
- rnxsim perf shell start # arm shell frame capture (clears prior)
123
+ rnx perf shell start # arm shell frame capture (clears prior)
124
124
  # reproduce — e.g. 8 fling swipes:
125
- # for i in {1..8}; do rnxsim do swipe 196 650 196 250 8 8 --no-wait; sleep 0.9; done
126
- rnxsim perf shell stop # report (add --json for scripting)
125
+ # for i in {1..8}; do rnx do swipe 196 650 196 250 8 8 --no-wait; sleep 0.9; done
126
+ rnx perf shell stop # report (add --json for scripting)
127
127
  ```
128
128
 
129
129
  the report and how to read it:
@@ -190,10 +190,10 @@ identify from its own output is not evidence.
190
190
  deeper tools when the frame report isn't enough:
191
191
 
192
192
  ```sh
193
- rnxsim maestro test .maestro/scroll.yaml --profile # per-step + frame stats
194
- rnxsim perf cpu --duration 5 --output /tmp/t.cpuprofile # sampled CPU
195
- rnxsim open 8089 --new --driver playwright --cdp-port 9222 # cpu-profile a driveable sim
196
- rnxsim debug enable layout,render && rnxsim debug recent layout 40
193
+ rnx maestro test .maestro/scroll.yaml --profile # per-step + frame stats
194
+ rnx perf cpu --duration 5 --output /tmp/t.cpuprofile # sampled CPU
195
+ rnx open 8089 --new --driver playwright --cdp-port 9222 # cpu-profile a driveable sim
196
+ rnx debug enable layout,render && rnx debug recent layout 40
197
197
  ```
198
198
 
199
199
  ### the cadence block: frames that never happened
@@ -1,55 +1,55 @@
1
1
  ---
2
2
  name: rnx-setup
3
- description: Get rnx connected to your React Native app — from `rnxsim setup` to a driveable sim
3
+ description: Get rnx connected to your React Native app — from `rnx setup` to a driveable sim
4
4
  ---
5
5
 
6
- # rnxsim setup
6
+ # rnx setup
7
7
 
8
8
  you want to drive a React Native app with rnx from the CLI. this skill
9
- takes you from `rnxsim setup` to a connected, pinned sim that every other
10
- rnxsim skill assumes exists. no per-app rnx install is required. if
11
- `rnxsim describe` already
9
+ takes you from `rnx setup` to a connected, pinned sim that every other
10
+ rnx skill assumes exists. no per-app rnx install is required. if
11
+ `rnx describe` already
12
12
  returns a tree, you're past this skill — load `/rnx-debug` for
13
13
  debugging or `/rnx-test` for writing tests.
14
14
 
15
15
  ## anti-patterns (read first)
16
16
 
17
- - **never `rnxsim claim --force` a sim held by another CLI.** the lease
17
+ - **never `rnx claim --force` a sim held by another CLI.** the lease
18
18
  exists for a reason. forcing strands the other agent and corrupts the
19
- bridge state. use `rnxsim open --new` to start a fresh sim instead.
20
- - **don't switch sims mid-investigation.** pin once with `rnxsim use
19
+ bridge state. use `rnx open --new` to start a fresh sim instead.
20
+ - **don't switch sims mid-investigation.** pin once with `rnx use
21
21
  <id>` and keep it pinned. an unpinned command refuses to choose when more
22
22
  than one driveable sim is live.
23
- - **an empty `rnxsim list` is not "broken rnx".** it usually means the
23
+ - **an empty `rnx list` is not "broken rnx".** it usually means the
24
24
  daemon is down, the dev server port is wrong, or the runtime is missing.
25
25
  walk the recovery checklist before reinstalling.
26
- - **keep one sim for your whole session.** the first `rnxsim open <port>`
26
+ - **keep one sim for your whole session.** the first `rnx open <port>`
27
27
  launches Chrome for Testing with an isolated profile. later opens reuse the
28
- saved sim and navigate it in place. use `rnxsim do reload` when the target
28
+ saved sim and navigate it in place. use `rnx do reload` when the target
29
29
  has not changed:
30
30
 
31
31
  ```sh
32
- rnxsim open 8086 # first call creates your isolated sim
33
- rnxsim open 8090 # same sim, different app
34
- rnxsim do reload # same sim, same app
35
- rnxsim close <id> # dispose it when you are done
32
+ rnx open 8086 # first call creates your isolated sim
33
+ rnx open 8090 # same sim, different app
34
+ rnx do reload # same sim, same app
35
+ rnx close <id> # dispose it when you are done
36
36
  ```
37
37
 
38
38
  `--new`, `--profile`, and `--ephemeral` create another isolated browser
39
39
  tree. use them only when separate storage or a genuinely concurrent sim is
40
40
  required. repeated new trees consume enough memory and CPU to starve other
41
41
  work on a shared machine.
42
- - **pin the sim before driving it.** `rnxsim open` records the new sim for the
42
+ - **pin the sim before driving it.** `rnx open` records the new sim for the
43
43
  current CLI identity. read its id and pin it explicitly before a longer flow:
44
44
 
45
45
  ```sh
46
- rnxsim open 8086
47
- rnxsim list
48
- rnxsim use <id>
49
- rnxsim describe --sim <id>
46
+ rnx open 8086
47
+ rnx list
48
+ rnx use <id>
49
+ rnx describe --sim <id>
50
50
  ```
51
51
 
52
- - **never retry-loop `rnxsim open` against a wedged or slow stack.** a
52
+ - **never retry-loop `rnx open` against a wedged or slow stack.** a
53
53
  connect timeout means diagnose the stack. do not retry. if the first launch
54
54
  never connects, each retry can create another browser tree before there is a
55
55
  saved sim to reuse. verify the development server and rnx runtime, then
@@ -58,47 +58,47 @@ debugging or `/rnx-test` for writing tests.
58
58
  ## first move
59
59
 
60
60
  ```sh
61
- rnxsim setup # one-time guided setup; installs daemon
62
- rnxsim compat --json # scan the app's native package compatibility
63
- rnxsim open 8081 # load a metro/expo dev server
64
- rnxsim list # confirm exactly one sim is reachable
65
- rnxsim use <id> # pin it for the rest of the workflow
66
- rnxsim describe # smoke test — should print a render tree
61
+ rnx setup # one-time guided setup; installs daemon
62
+ rnx compat --json # scan the app's native package compatibility
63
+ rnx open 8081 # load a metro/expo dev server
64
+ rnx list # confirm exactly one sim is reachable
65
+ rnx use <id> # pin it for the rest of the workflow
66
+ rnx describe # smoke test — should print a render tree
67
67
  ```
68
68
 
69
- if you do not know the port, run `rnxsim open` with no target and pick from
69
+ if you do not know the port, run `rnx open` with no target and pick from
70
70
  the detected dev servers. for hosted or unusual targets, pass the URL
71
71
  explicitly:
72
72
 
73
73
  ```sh
74
- rnxsim open 8081 # load a metro dev server
75
- rnxsim open https://my-app.local # load a hosted bundle
74
+ rnx open 8081 # load a metro dev server
75
+ rnx open https://my-app.local # load a hosted bundle
76
76
  ```
77
77
 
78
78
  ## you're done when
79
79
 
80
- - `rnxsim list` shows your sim and no orphans
81
- - `rnxsim describe` returns a render tree, not an error
82
- - the same sim id appears in `rnxsim describe`, `rnxsim find`, and
80
+ - `rnx list` shows your sim and no orphans
81
+ - `rnx describe` returns a render tree, not an error
82
+ - the same sim id appears in `rnx describe`, `rnx find`, and
83
83
  every subsequent command
84
- - `rnxsim get errors 5` and `rnxsim get requests 5` are quiet (or the
84
+ - `rnx get errors 5` and `rnx get requests 5` are quiet (or the
85
85
  warnings are ones you understand)
86
86
  - the compatibility scan's partial, unsupported, unknown, and version-mismatched
87
87
  packages have been summarized without treating its aggregate score as a pass/fail gate
88
88
 
89
89
  ## compatibility feedback requires approval
90
90
 
91
- run `rnxsim compat --json` from the app project root during setup. if the scan
91
+ run `rnx compat --json` from the app project root during setup. if the scan
92
92
  identifies a plausible missing rnx seam, or the running app gives concrete
93
93
  evidence that behavior is missing or broken specifically in rnx, summarize
94
94
  the package, expected behavior, actual behavior, and runtime evidence for the
95
- user. then offer to send that finding with `rnxsim report-issue`.
95
+ user. then offer to send that finding with `rnx report-issue`.
96
96
 
97
97
  **never submit a report automatically or behind the user's back.** wait for an
98
98
  explicit yes. only then run this from the app project root:
99
99
 
100
100
  ```sh
101
- rnxsim report-issue --yes "<package; expected behavior; actual behavior; runtime evidence>"
101
+ rnx report-issue --yes "<package; expected behavior; actual behavior; runtime evidence>"
102
102
  ```
103
103
 
104
104
  the command automatically attaches the local compatibility scan plus bounded
@@ -110,32 +110,32 @@ it records the user's approval after the offer.
110
110
 
111
111
  ## recovery — common failure modes
112
112
 
113
- **`rnxsim list` is empty.** walk this checklist in order:
113
+ **`rnx list` is empty.** walk this checklist in order:
114
114
 
115
115
  ```sh
116
- rnxsim daemon status # is the bridge daemon up?
117
- rnxsim runtime list # is at least one engine runtime installed?
118
- rnxsim open <port> # does loading explicitly work?
116
+ rnx daemon status # is the bridge daemon up?
117
+ rnx runtime list # is at least one engine runtime installed?
118
+ rnx open <port> # does loading explicitly work?
119
119
  ```
120
120
 
121
- if daemon is down: run `rnxsim setup`, or `rnxsim serve` in another shell for
122
- a foreground bridge. if no runtime is installed, `rnxsim open` installs it
121
+ if daemon is down: run `rnx setup`, or `rnx serve` in another shell for
122
+ a foreground bridge. if no runtime is installed, `rnx open` installs it
123
123
  before launching. if open errors with "port unreachable": confirm your dev
124
- server is actually serving — the bundler has to be up before rnxsim can
124
+ server is actually serving — the bundler has to be up before rnx can
125
125
  attach.
126
126
 
127
- **two sims appear unexpectedly.** an earlier `rnxsim claim` didn't
127
+ **two sims appear unexpectedly.** an earlier `rnx claim` didn't
128
128
  release on exit. close the orphan explicitly:
129
129
 
130
130
  ```sh
131
- rnxsim list # note the stale id
132
- rnxsim close <id> # release it cleanly
131
+ rnx list # note the stale id
132
+ rnx close <id> # release it cleanly
133
133
  ```
134
134
 
135
- **`rnxsim open` errors with "no runtime".** the engine binary isn't installed.
136
- Run `rnxsim runtime install`, then retry `rnxsim open <port>`.
135
+ **`rnx open` errors with "no runtime".** the engine binary isn't installed.
136
+ Run `rnx runtime install`, then retry `rnx open <port>`.
137
137
 
138
- **`rnxsim open` times out ("timed out waiting for opened sim to connect").**
138
+ **`rnx open` times out ("timed out waiting for opened sim to connect").**
139
139
  do not retry in a loop. verify the development server first: `__soot/` must
140
140
  respond and the engine watchers must be running. inspect the driver diagnostic
141
141
  path printed by the failed command. restart the broken development stack at its
@@ -143,13 +143,13 @@ supervisor, then retry once. rnx owns the isolated browser profile and its
143
143
  process tree; do not open the shell URL through an operating-system browser.
144
144
 
145
145
  **bridge disconnects mid-sim.** the WebSocket dropped (laptop slept,
146
- network blip). re-pin: `rnxsim use <id>`. the daemon retries reconnection
146
+ network blip). re-pin: `rnx use <id>`. the daemon retries reconnection
147
147
  automatically; you usually just need to re-issue the command.
148
148
 
149
149
  **"sim held by another CLI".** another agent or your own previous CLI
150
- process has the lease. find it (`rnxsim list`), close it (`rnxsim close
151
- <id>`), or start a clean sim (`rnxsim open --new`) — do **not**
152
- `rnxsim claim --force`.
150
+ process has the lease. find it (`rnx list`), close it (`rnx close
151
+ <id>`), or start a clean sim (`rnx open --new`) — do **not**
152
+ `rnx claim --force`.
153
153
 
154
154
  ## related
155
155