
Product
Socket MCP Adds Org Alerts, Threat Feed Review, and Package Inspection
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.
react-native-debug-toolkit
Advanced tools
A local-first React Native debug toolkit with Web Console, HTTP API, and MCP support for AI-readable app logs

A local debugging toolkit for React Native apps. It provides an in-app debug panel, a desktop Web Console, an HTTP API, and an MCP server — all running locally with no cloud dependency.
RN App -> Debug Panel -> local daemon -> Web Console / HTTP API / MCP
curl, scripts, or AI agents (Codex, Claude Code, etc.).list_app_devices and get_app_logs.npm install react-native-debug-toolkit
Install the native part and rebuild:
cd ios && pod install
# Android: Gradle autolinking runs on the next build
Expo Go cannot load this native module. Use a development build, prebuild, or bare React Native app.
Optional dependencies:
npm install @react-native-clipboard/clipboard
npm install @react-native-async-storage/async-storage
Wrap your app:
import { DebugView } from 'react-native-debug-toolkit';
export function App() {
return (
<DebugView>
<AppContent />
</DebugView>
);
}
Run the app in dev mode, then tap DBG.
Start the desktop daemon:
npm exec -- debug-toolkit --daemon-only
# or: npx react-native-debug-toolkit --daemon-only
Open the Web Console:
http://127.0.0.1:3799/console
In the app, go to Debug Panel → DevConnect → Send Once or Start Live Sync to sync logs to the desktop.
DevConnect auto-detects simulator/emulator and configures host settings. On real devices, enter your computer IP manually.
IP and ports are persisted via AsyncStorage (when installed) or through the native module after rebuild.
QR scan is optional. Install react-native-camera-kit or expo-camera to enable the scan button. The app must request camera permission before scanning.
| Runtime | App endpoint |
|---|---|
| iOS simulator | http://localhost:3799 |
| Android emulator | http://10.0.2.2:3799 |
| Real device | http://<mac-ip>:3799 |
For real devices, first open this URL in the phone browser:
http://<mac-ip>:3799/health
If it does not open, check Mac firewall, Wi-Fi isolation, VPN, local network permission, and cleartext HTTP settings.
Daemon log store:
~/.react-native-debug-toolkit/daemon-devices.json
Custom store path:
npm exec -- debug-toolkit --daemon-only --store /path/to/devices.json
# or: npx react-native-debug-toolkit --daemon-only --store /path/to/devices.json
DEBUG_TOOLKIT_DAEMON_STORE=/path/to/devices.json npm exec -- debug-toolkit --daemon-only
HTTP is the recommended path when your AI agent or script has shell access.
BASE=http://127.0.0.1:3799
curl "$BASE/health"
curl "$BASE/devices"
curl "$BASE/devices/latest"
DEVICE_ID=$(curl -s "$BASE/devices" | node -e "let s='';process.stdin.on('data',d=>s+=d).on('end',()=>console.log((JSON.parse(s).devices||[])[0]?.deviceId||''))")
curl "$BASE/devices/$DEVICE_ID/logs?limit=100"
curl "$BASE/devices/$DEVICE_ID/logs?type=network&failedOnly=true&limit=50"
curl "$BASE/devices/$DEVICE_ID/logs?type=console&limit=100"
curl "$BASE/devices/$DEVICE_ID/logs?entryId=<entryId>"
curl "$BASE/devices/$DEVICE_ID/logs?limit=100&includeBodies=true"
curl -X DELETE "$BASE/devices"
Endpoints:
GET /health
POST /report
POST /ingest
GET /devices
GET /devices/latest
GET /devices/:deviceId
GET /devices/:deviceId/logs?type=&limit=&failedOnly=&includeBodies=&entryId=
DELETE /devices
GET /events
GET /console
claude mcp add debug-toolkit -- npm exec -- debug-toolkit
# or: claude mcp add debug-toolkit -- npx react-native-debug-toolkit
Tools:
list_app_devices — list connected devicesget_app_logs — fetch device logsget_app_logs excludes bodies by default to reduce token usage. Set includeBodies=true or pass entryId to fetch a single full entry.
Native Logs collects native app-process logs and displays them in the Native tab.
logcat entries visible to the app.RCTLog*.Release builds stay disabled by default. To enable for internal release, TestFlight, QA, or gray rollout builds:
<DebugView enabled={true} />
Native logs may contain user data, tokens, URLs, or device state. Do not enable by default in public production builds.
<DebugView features={{ clipboard: false, zustand: false }}>
<AppContent />
</DebugView>
import {
DebugView,
createDebugTab,
type DebugFeatureRenderProps,
} from 'react-native-debug-toolkit';
type UserSnapshot = {
id?: string;
role?: string;
};
function UserDebugTab({ snapshot }: DebugFeatureRenderProps<UserSnapshot>) {
return (
<View>
<Text>User ID: {snapshot.id ?? '-'}</Text>
<Text>Role: {snapshot.role ?? '-'}</Text>
</View>
);
}
const userDebugTab = createDebugTab<UserSnapshot>({
name: 'user',
label: 'User',
getSnapshot: () => ({
id: authStore.user?.id,
role: authStore.user?.role,
}),
render: UserDebugTab,
});
<DebugView customFeatures={[userDebugTab]}>
<AppContent />
</DebugView>;
Each custom feature becomes a panel tab. name is the stable tab id, label is shown in the tab bar, getSnapshot provides tab data, and render controls the UI. Add subscribe when the tab should refresh after external state changes.
<DebugView navigationRef={navigationRef}>
<NavigationContainer ref={navigationRef}>
<AppContent />
</NavigationContainer>
</DebugView>
import { zustandLogMiddleware } from 'react-native-debug-toolkit';
import { addTrackLog } from 'react-native-debug-toolkit';
addTrackLog({ eventName: 'button_click' });
DebugViewDebugToolkitinitializeDebugToolkitcreateDebugTabcreateDebugDeviceReportcheckDaemonConnectionreportDebugDeviceToDaemonstartStreamingstopStreamingisStreamingautoDetectDaemonIpMIT
FAQs
A local-first React Native debug toolkit with Web Console, HTTP API, and MCP support for AI-readable app logs
The npm package react-native-debug-toolkit receives a total of 57 weekly downloads. As such, react-native-debug-toolkit popularity was classified as not popular.
We found that react-native-debug-toolkit demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.

Product
Socket Firewall blocks malicious VS Code and Open VSX extensions before install, protecting developers from compromised editor marketplaces.

Research
More than 140 Mastra npm packages were compromised in a supply chain attack that used a typosquatted dependency to deliver a cross-platform infostealer during installation.