@rozenite/app
v2.4.0
Published
Standalone Rozenite DevTools application, served directly by Metro and connected to a device over its own CDP WebSocket.
Maintainers
Readme

A standalone Rozenite DevTools application that runs in its own browser window.
@rozenite/app is the Rozenite shell, connected directly to a device over
its own CDP WebSocket and served on its own page instead of embedded in the
React Native DevTools frontend. It is launched with rozenite open, is
served by @rozenite/middleware, and is currently opt-in — it does not
replace the embedded DevTools panel experience.
Running as its own page rather than inside DevTools means the shell survives things that would otherwise reset it. Its headline capability is that installed plugin panels stay mounted across a JS-VM reload: today, the embedded panel tears every panel down on each app reload. This app instead shows a "Reloading…" status in its footer, reconnects to the device once the new JS VM comes up, and leaves your panels' state untouched.
Features
- Panels survive reloads: A JS-VM reload reconnects the underlying device connection without unmounting the shell or its panels.
- Own browser window: Runs outside the React Native DevTools frontend, so it isn't tied to that window's lifecycle.
- Status footer: Shows connection state — connecting, connected, reloading, disconnected, Rozenite not installed, or dev server unreachable — with a way to retry or reconnect from each problem state.
Installation
@rozenite/app is not installed directly. It ships as a dependency of
@rozenite/middleware, which serves its build automatically, and is opened
with the rozenite CLI's open command.
Usage
Start your dev server (rozenite open needs a running one to talk to),
then run:
npx rozenite openThis looks at the default port of every supported integration — Metro's
8081 and the Lynx dev server's 3000 — lists the devices connected to
whichever is running, labelled by integration, and opens this app,
in an Electron window (via @rozenite/electron-app) for the one you
pick, or your default browser if Electron isn't available.
Current limitations
- Single debugger slot: The app connects directly to the device, the
same way React Native DevTools and
rozenite agentdo. Only one connection can be attached to a device at a time, so opening this app disconnects React Native DevTools (orrozenite agent) if either is already attached, and vice versa — whichever connects last wins. - Requires Metro: The app is served by Metro, so it isn't reachable unless Metro is running. If Metro stops, the app shows a "dev server unreachable" state until it's back.
- Interactive only:
rozenite openrequires a terminal a person can respond to and cannot be used in CI or non-interactive shells.
Made with ❤️ at Callstack
rozenite is an open source project and will always remain free to use. If you think it's cool, please star it 🌟.
Callstack is a group of React and React Native geeks, contact us at [email protected] if you need any help with these or just want to say hi!
Like the project? ⚛️ Join the team who does amazing stuff for clients and drives React Native Open Source! 🔥
