Welcome to React Doctor
React Doctor is a CLI tool that scans your React codebase for security, performance, correctness, and architecture issues. One command gives you a 0-100 score with actionable diagnostics.How It Works
React Doctor automatically detects your framework (Next.js, Vite, Remix, etc.), React version, and compiler setup, then runs two analysis passes in parallel:Lint Analysis
Checks 60+ rules across state & effects, performance, architecture, bundle size, security, correctness, accessibility, and framework-specific categories (Next.js, React Native)
Dead Code Detection
Detects unused files, exports, types, and duplicates throughout your codebase
- 75+ Great - Your codebase is in excellent shape
- 50-74 Needs work - Some issues to address
- <50 Critical - Significant problems detected
Key Features
Zero Configuration
No installation needed. Run with
npx and get results immediately. Auto-detects your framework and React version.Framework Aware
Built-in support for Next.js, Vite, Remix, React Native, and more. Rules are toggled automatically based on your setup.
Diff Mode
Scan only changed files with
--diff to speed up CI/CD pipelines and focus on what matters.GitHub Actions
First-class CI/CD integration with automatic PR comments and score outputs.
AI Agent Ready
Install React Doctor as a skill for Cursor, Claude Code, OpenCode, Windsurf, and other coding agents.
Auto-Fix with Ami
Use Ami coding agent to automatically fix issues and improve your score.
Quick Links
Installation
Get started with React Doctor in seconds
Quick Start
Run your first scan and understand the output
GitHub Actions
Set up React Doctor in your CI/CD pipeline
API Reference
Use React Doctor programmatically in Node.js
Real-World Results
React Doctor has analyzed popular open-source projects:| Project | Score | Details |
|---|---|---|
| tldraw | 84 | 98 errors, 139 warnings, 40 unused files |
| excalidraw | 84 | 2 errors, 196 warnings, 80 unused files |
| twenty | 78 | 99 errors, 293 warnings, 268 unused files |
| plane | 78 | 7 errors, 525 warnings, 292 unused files |
What’s Next?
Need Help?
Open an issue on GitHub or check existing discussions