repo2txt
💡 Looking for the classic version? Check out repo2txt-classic
Convert repositories to plain text for LLM prompts
Fast, browser-based tool for AI-assisted development
🔗 Try it now →
✨ Features
🔌 Multiple Sources
GitHub - Public and private repositories with token support
Local Files - Directory picker for your local projects
Zip Upload - Drag & drop zip files
GitLab (Beta) - GitLab repository support
Azure DevOps (Beta) - Azure Repos integration
🎯 Smart Filtering
Extension Filter - Select/deselect by file type
Gitignore Support - Automatically respect .gitignore patterns
Custom Patterns - Add your own ignore patterns
Directory Selection - Cherry-pick specific folders
File Tree Preview - Visual file selection with virtual scrolling
🚀 Performance
Virtual Scrolling - Handle repositories with 10,000+ files
Code Splitting - Lazy-loaded providers for optimal bundle size
Web Workers - Tokenization runs in background threads
Progressive Loading - Stream file contents as they load
Smart Caching - Efficient memory usage for large repos
🎨 Modern UX
Dark Mode - System, light, and dark themes
Responsive Design - Works on desktop, tablet, and mobile
Token Counter - Real-time GPT token counting
File Statistics - Per-file token and line counts
Progress Indicators - Clear feedback during loading
🔒 Privacy First
100% Browser-Based - No server uploads, all processing is local
No Tracking - Your code never leaves your device
Secure - GitHub tokens stored in sessionStorage only
Open Source - Fully auditable codebase
🚀 Quick Start
Use Online
Visit abinthomas.in/repo2txt - no installation needed!
Run Locally
hljs language-bash
Copy
git clone https://github.com/abinthomasonline/repo2txt.git
cd repo2txt
npm install
npm run dev
Build for Production
hljs language-bash
Copy npm run build
📖 Usage
GitHub Repository
Paste a GitHub URL: https://github.com/facebook/react
Optionally add a personal access token for:
Private repositories
Higher rate limits (5000 vs 60 requests/hour)
Click "Load Repository"
Select files using the tree or extension filters
Click "Generate Output"
Copy to clipboard or download as .txt
Supported URL formats:
https://github.com/owner/repo (default branch)
https://github.com/owner/repo/tree/branch-name
https://github.com/owner/repo/tree/branch-name/path/to/folder
Branch names with slashes: feature/test/branch-name ✓
Local Files
Switch to "Local" provider
Choose "Directory" or "Zip File"
Select your project folder or upload a zip
Same filtering and export options as GitHub
🛠️ Tech Stack
Framework : React 19 + TypeScript
Build Tool : Vite 5
Styling : Tailwind CSS 3
State Management : Zustand
File Handling : JSZip
Tokenization : gpt-tokenizer
Virtual Scrolling : TanStack Virtual
Testing : Vitest + Playwright
CI/CD : GitHub Actions
📊 Project Stats
Bundle Size : ~330KB main chunk (gzipped)
First Load : < 2s on 3G
Test Coverage : 100% E2E test pass rate
Performance : Lighthouse 95+ across all metrics
Compatibility : Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
🤝 Contributing
We welcome contributions! Please see:
Quick Contribution Guide
hljs language-bash
Copy
git clone https://github.com/YOUR_USERNAME/repo2txt.git
git checkout -b feature/amazing-feature
npm run test :unit
npm run test :e2e
git commit -m "Add amazing feature"
git push origin feature/amazing-feature
📝 License
MIT License - see LICENSE for details
🙏 Acknowledgments
🔗 Links
⭐ Star History
If you find this project helpful, please consider giving it a star! It helps others discover the tool.
Made with 🤖 for AI developers