AI insights on your GitHub repo - understand quality, design, security, and improvement opportunities in seconds.
Now owned and maintained by Ossium
Features β’ Quick Start β’ API Reference β’ Contributing β’ Code of Conduct β’ License
Repolyze is an open-source tool that leverages AI to analyze GitHub repositories instantly. Whether you're evaluating a new library, onboarding to a codebase, or auditing your own project, Repolyze provides comprehensive insights in seconds.
| Benefit | Description |
|---|---|
| Save Hours | Understand any codebase in seconds, not hours |
| AI-Powered | Intelligent analysis using advanced language models |
| Comprehensive | Code quality, security, architecture, and more |
| Branch Support | Analyze any branch, not just the default |
| Beautiful UI | Modern, responsive interface with dark mode |
| Privacy First | No code is stored; analysis happens in real-time |
| Free & Open Source | MIT licensed, community-driven |
| Feature | Description |
|---|---|
| Health Scoring | Comprehensive score (0-100) for overall code quality |
| Architecture Analysis | Visualize component relationships and structure |
| Security Insights | Identify potential vulnerabilities and security issues |
| Dependency Analysis | Understand package dependencies and outdated packages |
| Tech Stack Detection | Automatically identify frameworks and technologies |
| AI Recommendations | Get actionable improvement suggestions |
| Branch Analysis | Analyze any branch in the repository |
| Data Flow Diagrams | Interactive Mermaid diagrams showing data flow patterns |
| Feature | Description |
|---|---|
| Copy Plain Text | Copy analysis report as formatted plain text |
| Copy Markdown | Copy full report in Markdown format |
| Download PDF | Export detailed PDF report with all insights |
| Share Cards | Download beautiful share cards as images |
| Social Sharing | Share on Twitter, LinkedIn, or copy link |
| Feature | Description |
|---|---|
| Interactive File Tree | Explore repository structure with file statistics |
| Real-time Progress | Watch the analysis happen live with status updates |
| Dark/Light Mode | Beautiful themes for any preference |
| Fully Responsive | Works seamlessly on desktop, tablet, and mobile |
| Lightning Fast | Built with Next.js 16 for optimal performance |
| Smart Caching | Recently analyzed repos load instantly |
- Node.js 18.0 or higher
- pnpm (recommended) or npm/yarn
- Git
# Verify Node.js version
node --version # Should be >= 18.0.0
# Install pnpm if needed
npm install -g pnpm# 1. Clone the repository
git clone https://github.com/OssiumOfficial/Repolyze.git
cd Repolyze
# 2. Install dependencies
pnpm install
# 3. Set up environment variables
cp .env.example .env.local
# 4. Add your API keys (see Environment Variables section)
# 5. Start development server
pnpm dev
# 6. Open http://localhost:3000Create a .env.local file with the following:
# ===========================================
# REQUIRED
# ===========================================
# GitHub Personal Access Token
# Get yours at: https://github.com/settings/tokens
# Required scopes: repo, read:user
GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx
# OpenRouter API Key
# Get yours at: https://openrouter.ai/keys
OPENROUTER_API_KEY=sk-or-xxxxxxxxxxxxxxxxxxxx
# ===========================================
# OPTIONAL
# ===========================================
# Site URL (for SEO and social sharing)
NEXT_PUBLIC_SITE_URL=http://localhost:3000
# Cache duration in seconds (default: 3600)
CACHE_TTL=3600π How to Get API Keys
- Go to GitHub Settings β Developer settings β Personal access tokens β Tokens (classic)
- Click "Generate new token (classic)"
- Select scopes:
repo,read:user - Copy the token and add it to
.env.local
- Go to OpenRouter
- Sign up and navigate to Settings β API Keys
- Create a new key and add it to
.env.local
| Category | Technologies |
|---|---|
| Framework | Next.js 16, React 19, TypeScript 5 |
| Styling | Tailwind CSS 4, shadcn/ui |
| Animation | Framer Motion |
| Diagrams | Mermaid |
| PDF Export | jsPDF |
| AI | OpenRouter |
| Deployment | Vercel |
Repolyze/
βββ app/
β βββ api/
β β βββ analyze/
β β β βββ route.ts # POST /api/analyze - Main analysis endpoint
β β β βββ config.ts # API configuration & constants
β β β βββ types.ts # Request/Response type definitions
β β β βββ validators.ts # Input validation schemas
β β β βββ rate-limit.ts # Rate limiting middleware
β β β βββ stream-handler.ts # SSE streaming handler
β β βββ branches/
β β βββ route.ts # GET /api/branches - Fetch repo branches
β βββ share/
β β βββ page.tsx # Shareable analysis page
β βββ layout.tsx # Root layout with providers
β βββ page.tsx # Home page
β βββ globals.css # Global styles & Tailwind imports
β
βββ components/
β βββ ui/ # shadcn/ui components (button, card, dialog, etc.)
β β
β βββ repo-analyzer/
β β βββ index.tsx # Main analyzer orchestrator
β β βββ section-header.tsx # Reusable section headers
β β βββ automations.ts # Automation suggestions logic
β β
β βββ analysis-header/
β β βββ index.tsx # Analysis results header
β β βββ branch-selector.tsx # Branch selection dropdown
β β βββ summary-actions.tsx # Export & share action buttons
β β
β βββ file-tree/
β β βββ index.tsx # File tree container
β β βββ tree-node.tsx # Individual tree node component
β β βββ language-tags.tsx # Language indicator badges
β β βββ types.ts # File tree type definitions
β β
β βββ share-card/
β β βββ index.tsx # Share card generator
β β βββ variants/ # Card variants (compact, default, detailed)
β β βββ technical-frame.tsx # Technical info frame
β β βββ types.ts # Share card types
β β
β βββ share-modal/
β β βββ index.tsx # Share modal entry point
β β βββ desktop-dialog.tsx # Desktop share dialog
β β βββ mobile-drawer.tsx # Mobile share drawer
β β βββ action-sections.tsx # Share action buttons
β β
β βββ testimonial/
β β βββ masonry.tsx # Masonry layout for testimonials
β β βββ testimonial.tsx # Individual testimonial card
β β βββ data.ts # Testimonial data
β β
β βββ ai-insights.tsx # AI-generated insights display
β βββ automation-panel.tsx # Automation suggestions panel
β βββ architecture-diagram.tsx # Architecture visualization
β βββ data-flow-diagram.tsx # Mermaid data flow diagram
β
βββ context/
β βββ analysis-context.tsx # Global analysis state management
β βββ theme-provider.tsx # Theme context (dark/light mode)
β
βββ lib/
β βββ pdf-export.ts # PDF generation with jsPDF
β βββ share.ts # Share URL & social sharing utilities
β βββ storage.ts # LocalStorage helpers for caching
β βββ validators.ts # URL & input validation functions
β βββ mermaid.ts # Mermaid diagram configuration
β
βββ public/
β βββ icon.svg # App icon
β βββ og-image.png # Open Graph image for social sharing
β βββ Repolyze-showcase.png # README showcase image
β
βββ .env.example # Environment variables template
βββ .env.local # Local environment variables (git-ignored)
βββ next.config.ts # Next.js configuration
βββ tailwind.config.ts # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
βββ package.json # Dependencies & scripts
flowchart TB
subgraph Client
A[User Input] --> B[URL Validation]
B --> C[Branch Selection]
end
subgraph API Layer
C --> D[Rate Limiter]
D --> E[GitHub API]
E --> F[Repository Data]
F --> G[AI Analysis Engine]
end
subgraph Processing
G --> H[Score Calculation]
H --> I[Insight Generation]
I --> J[Diagram Generation]
end
subgraph Output
J --> K[Results Display]
K --> L{Export Options}
L --> M[PDF Report]
L --> N[Markdown]
L --> O[Share Card]
L --> P[Social Share]
end
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β RepoAnalyzer ββββββΆβ AnalysisContext ββββββΆβ API Routes β
β (UI Entry) β β (State Mgmt) β β (/api/analyze) β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β AnalysisHeader β β File Tree β β GitHub + AI β
β (Actions/Nav) β β (Structure) β β (Data Fetch) β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β ShareModal β β AI Insights β β Score Cards β
β (Export/Share) β β (Recommendations)β β (Metrics) β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
Analyzes a GitHub repository and returns comprehensive insights.
POST /api/analyze
Content-Type: application/json{
"repoUrl": "https://github.com/owner/repo",
"branch": "main",
"forceRefresh": false
}| Parameter | Type | Required | Description |
|---|---|---|---|
repoUrl |
string | Yes | Full GitHub repository URL |
branch |
string | No | Branch to analyze (default: repository's default branch) |
forceRefresh |
boolean | No | Skip cache and force re-analysis |
{
"success": true,
"cached": false,
"data": {
"metadata": {
"name": "next.js",
"fullName": "vercel/next.js",
"description": "The React Framework",
"stars": 120000,
"forks": 25000,
"language": "TypeScript",
"branch": "main",
"license": "MIT",
"owner": {
"login": "vercel",
"avatarUrl": "https://avatars.githubusercontent.com/u/..."
}
},
"scores": {
"overall": 92,
"codeQuality": 95,
"documentation": 90,
"security": 88,
"maintainability": 94,
"testCoverage": 85,
"dependencies": 90
},
"insights": [
{
"type": "strength",
"title": "Excellent Documentation",
"description": "Comprehensive README and API documentation",
"priority": "high"
}
],
"techStack": ["TypeScript", "React", "Next.js", "Turbopack"],
"fileTree": { "...": "..." },
"dataFlow": {
"mermaid": "flowchart TD\n A[Input] --> B[Process]"
},
"refactors": [...],
"automations": [...],
"summary": "Next.js is a well-maintained React framework..."
}
}| Status | Code | Description |
|---|---|---|
| 400 | INVALID_URL |
Invalid GitHub URL format |
| 404 | REPO_NOT_FOUND |
Repository not found |
| 422 | BRANCH_NOT_FOUND |
Specified branch not found |
| 429 | RATE_LIMITED |
Too many requests |
Fetches all available branches for a repository.
GET /api/branches?repo=owner/repo{
"success": true,
"data": {
"branches": [
{ "name": "main", "protected": true, "default": true },
{ "name": "develop", "protected": false, "default": false }
],
"defaultBranch": "main"
}
}cURL:
curl -X POST https://repolyze.ossium.live/api/analyze \
-H "Content-Type: application/json" \
-d '{"repoUrl": "https://github.com/vercel/next.js", "branch": "canary"}'JavaScript:
const response = await fetch("/api/analyze", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
repoUrl: "https://github.com/vercel/next.js",
branch: "canary",
}),
});
const { data } = await response.json();
console.log(data.scores.overall); // 92| Command | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build for production |
pnpm start |
Start production server |
pnpm lint |
Run ESLint |
pnpm lint:fix |
Fix ESLint errors |
pnpm type-check |
Run TypeScript checks |
pnpm format |
Format code with Prettier |
# Test analyze endpoint
curl -X POST http://localhost:3000/api/analyze \
-H "Content-Type: application/json" \
-d '{"repoUrl": "https://github.com/ig-imanish/mx-icons"}'
# Test branches endpoint
curl "http://localhost:3000/api/branches?repo=ig-imanish/mx-icons"
# Test share page
open http://localhost:3000/share/ig-imanish/mx-iconsWe welcome contributions from everyone! Here's how you can help:
| Type | Description |
|---|---|
| π Bug Reports | Found a bug? Open an issue |
| π‘ Feature Requests | Have an idea? Start a discussion |
| π Documentation | Help improve our docs |
| π§ Code | Submit bug fixes or new features |
| π¨ Design | Improve UI/UX |
# 1. Fork the repository on GitHub
# 2. Clone your fork
git clone https://github.com/YOUR_USERNAME/Repolyze.git
cd Repolyze
# 3. Add upstream remote
git remote add upstream https://github.com/OssiumOfficial/Repolyze.git
# 4. Create a feature branch
git checkout -b feature/amazing-feature
# 5. Install dependencies
pnpm install
# 6. Start development
pnpm dev
# 7. Make your changes and commit
git add .
git commit -m "feat: add amazing feature"
# 8. Push to your fork
git push origin feature/amazing-feature
# 9. Open a Pull Request on GitHubWe follow Conventional Commits:
| Type | Description | Example |
|---|---|---|
feat |
New feature | feat: add branch comparison |
fix |
Bug fix | fix: resolve memory leak |
docs |
Documentation | docs: update API reference |
style |
Formatting | style: fix indentation |
refactor |
Code refactoring | refactor: simplify auth logic |
perf |
Performance | perf: optimize image loading |
test |
Tests | test: add unit tests |
chore |
Maintenance | chore: update dependencies |
Before submitting a PR, please ensure:
- Code follows the existing style
- All tests pass (
pnpm lint && pnpm type-check) - Commit messages follow convention
- Documentation is updated if needed
- PR description explains the changes
When opening an issue, please include:
For Bug Reports:
- Clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Environment details (OS, browser, Node version)
For Feature Requests:
- Clear description of the feature
- Use case / problem it solves
- Proposed solution (if any)
- Alternatives considered
- π Private repository support with OAuth
- π Historical tracking & score trends
- π Webhook notifications on score changes
- π Team dashboard for multiple repos
- π€ GitHub Action integration
- π Branch comparison (side-by-side)
- β Branch analysis support
- β Data flow diagrams (Mermaid)
- β PDF export with jsPDF
- β Markdown/Plain text copy
- β Social sharing
- β Dark/Light mode
- β Smart caching
Is Repolyze free to use?
Yes! Repolyze is completely free and open source under the MIT license.
Is my code stored anywhere?
No. Repolyze analyzes repositories in real-time and does not store any code. Only analysis results are temporarily cached.
Can I analyze private repositories?
Currently, only public repositories are supported. Private repository support is on our roadmap.
What languages are supported?
Repolyze can analyze repositories in any programming language including JavaScript, TypeScript, Python, Go, Rust, Java, and more.
How accurate is the analysis?
Repolyze uses advanced AI models for analysis. Results should be considered as helpful suggestions rather than absolute assessments.
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2024 Ossium
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software...
Special thanks to these amazing projects:
- Next.js - The React framework
- shadcn/ui - UI components
- Tailwind CSS - Styling
- Framer Motion - Animations
- Mermaid - Diagrams
- jsPDF - PDF generation
- OpenRouter - AI gateway
- Vercel - Deployment