rnassist
v1.0.6
Published
AI-powered debugger and performance analyzer for React Native projects
Readme
rnassist
AI-powered debugger and performance analyzer for React Native projects.
Run it inside any React Native project to get real-time analysis of your code, dependencies, runtime errors, network calls, and known bugs — all in one terminal report.

How It Works
rnassist scan
↓
Reads all .ts .tsx .js .jsx files
↓
Checks dependencies against known RN bug database
↓
Connects to your running app via Metro WebSocket
Collects: runtime errors, console logs, network calls
↓
Sends everything to Gemini AI
↓
Prints a specific, actionable report in your terminalRequirements
- Node.js 18+
- A React Native or Expo project
- Metro bundler running (
npx expo startornpx react-native start)
Installation
npm install -g rnassistSetup
You need a free Gemini API key to use rnassist:
- Get your API key: https://aistudio.google.com/app/apikey
- Set it as an environment variable:
export GEMINI_API_KEY="your-api-key-here"To make it permanent, add it to your shell profile:
# For Zsh (macOS default)
echo 'export GEMINI_API_KEY="your-key"' >> ~/.zshrc
source ~/.zshrc
# For Bash
echo 'export GEMINI_API_KEY="your-key"' >> ~/.bashrc
source ~/.bashrcUsage
Navigate to your React Native project root, then run:
Scan
rnassist scanWatches your running app. Trigger some actions in the simulator or device, then press Ctrl+C to analyze. You will get a full report covering:
- Runtime crashes and errors
- Performance bottlenecks (JS thread, re-renders, memory leaks)
- Bad patterns and anti-patterns
- Known bugs matched to your exact dependency versions
- Network calls made during the session
Update Bug Database
rnassist update-bugsFetches the latest React Native changelog from GitHub and updates the local bug database. Run this periodically to stay up to date with known fixes.
Example Output
===========================================================================================
[!] CRITICAL CRASH
===========================================================================================
FILE: /app/(tabs)/biometric.tsx
LINE: 22
21 | const data = undefined;
22 | console.log(data.name); <--- CRASH HERE
FIX: Use optional chaining: console.log(data?.name)
===========================================================================================
[!] PERFORMANCE — JS THREAD BOTTLENECK
===========================================================================================
FILE: /Hooks/useProduct.tsx
fetchProduct is recreated on every render.
Wrap in useCallback to stabilize the reference.What It Analyzes
- All
.ts,.tsx,.js,.jsxfiles in your project (skipsnode_modules,android,ios,build) package.jsondependencies matched against a database of known RN bugs- Live runtime data from your running app via Chrome DevTools Protocol
- React Native core bug fixes from the official changelog
License
ISC
