Sleek, extensible devtools for React Native. Add tabs as npm plugins!
- Plugin system: add tabs via simple npm packages.
- Real-time monitoring (Socket.IO integration for reliable communication)
- Zero server edits: plugins talk over a shared plugin:up / plugin:down bus.
- One hook to wire it all: useReactNativeDevtools() creates one socket, fans out to plugin hooks.
- Always listening: plugins keep syncing even when their tab isn’t active.
- Zero-config production safety - automatically disabled in production builds
yarn add -D rn-devtools
yarn add @rn-devtools/plugin-sdk- @rn-devtools/react-query-plugin
- @rn-devtools/react-navigation-plugin
- @rn-devtools/react-native-mmkv-plugin
Create rn-devtools.config.js in your RN app:
module.exports = {
plugins: [
"@rn-devtools/react-query-plugin",
"@rn-devtools/react-navigation-plugin",
"@rn-devtools/react-native-mmkv-plugin"
],
};# from the package root
rn-devtoolsimport { useReactNativeDevtools } from "rn-devtools";
import { useReactQueryDevtools } from "@rn-devtools/react-query-plugin/native";
import { useReactNavigationDevtools } from "@rn-devtools/react-navigation-plugin/native";
import { seMMKVDevtools } from "@rn-devtools/react-native-mmkv-plugin/native";
function App() {
// your app setup…
useReactNativeDevtools({
socketURL: "http://10.0.2.2:35515",
deviceName: Platform.OS,
platform: Platform.OS,
deviceId: Platform.OS, // make this persistent per device in real apps
plugins: ({ socket, deviceId }) => {
useReactQueryDevtools({ queryClient, socket, deviceId });
useReactNavigationDevtools({ navigationRef, socket, deviceId });
useMMKVDevtools({ storages: [storage], socket, deviceId, });
},
});
return <AppRoot />;
}DevTools opens on http://localhost:35515
This project is licenced under the MIT License.
