| name | debugging-react-native |
| description | Use PROACTIVELY when debugging React Native apps. Reads console logs and executes JavaScript in running apps via Metro bundler. Invoke for: app crashes, state inspection, API debugging, error investigation, or running diagnostic code. Requires Metro running (port 8081). |
# Read recent logs
python scripts/read_logs.py
# Execute JS in app
python scripts/execute_in_app.py "Date.now()"
Only use discover_apps.py or --app-id when you get an error about multiple apps being connected.
python scripts/read_logs.py [--max-logs 100] [--filter "error|warn"] [--timeout 5]
--filter: Regex to filter log messages--timeout: Seconds to collect logs (default: 5)--app-id: Only needed if multiple apps connected--metro-url: Override Metro URL (default: http://localhost:8081)
Errors and warnings include stack trace location.
python scripts/execute_in_app.py "expression" [--no-await] [--timeout 10]
# Or pipe expression
echo "globalThis.myVar" | python scripts/execute_in_app.py
--no-await: Don't await Promise results--app-id: Only needed if multiple apps connected--metro-url: Override Metro URL (default: http://localhost:8081)- Supports any JS: variable access, function calls, IIFEs, etc.
python scripts/discover_apps.py [--metro-url URL] [--json]
Filter for errors:
python scripts/read_logs.py --filter "error|Error|ERROR"
Run diagnostic code:
python scripts/execute_in_app.py "(async () => { const resp = await fetch('http://api.example.com/health'); return resp.status; })()"