@cosmstack/repoeject
v0.1.4
Published
Interactive CLI tool to safely find and delete old or inactive GitHub repositories. Clean up your GitHub profile by removing abandoned projects, old experiments, and unused forks.
Maintainers
Readme
🚀 Repo Eject CLI
Early Stage Project - This is an MVP tool with core functionality implemented. See Roadmap for planned features.
A command-line tool that helps developers clean up their GitHub accounts by finding and safely removing old or inactive repositories. Perfect for developers with cluttered GitHub profiles who want to maintain a clean, professional presence.
✨ Why Use Repo Eject?
- Declutter your GitHub profile - Remove old experiments, abandoned projects, and inactive forks
- Safe by default - Interactive prompts and dry-run mode prevent accidental deletions
- Time-saving - Quickly identify inactive repositories instead of manually browsing through dozens of repos
- Professional presence - Keep only your best work visible to potential employers and collaborators
🎯 Current Features
- ✅ Repository Analysis - Automatically scan and list your GitHub repositories
- ✅ Interactive Selection - Choose which repositories to delete through a user-friendly CLI
- ✅ Safe Deletion - Confirmation prompts and dry-run mode for safety
- ✅ GitHub API Integration - Secure authentication with personal access tokens
- ✅ Colorful Output - Clear, readable terminal interface
📋 Prerequisites
- Node.js v18 or higher
- GitHub Personal Access Token with
reposcope (How to create one)
🚀 Quick Start
Installation
# Install globally via npm
npm install -g @cosmstack/repoeject
# Or with yarn
yarn global add @cosmstack/repoejectGitHub Token Setup
- Go to GitHub Settings → Developer Settings → Personal Access Tokens
- Click "Generate new token (classic)"
- Select the
reposcope (full control of private repositories) - Copy the generated token
Usage
# Run the interactive CLI
repoeject
# Dry run (see what would be deleted without actually deleting)
repoeject --dry-run
# Skip confirmation prompts (use with caution!)
repoeject --force
# Show help
repoeject --helpThe CLI will guide you through:
- Authentication - Enter your GitHub token when prompted
- Repository Scanning - Automatically fetch and analyze your repositories
- Selection - Choose which repositories to delete from an interactive list
- Confirmation - Review and confirm your selections before deletion
🛠️ Development
Local Setup
# Clone the repository
git clone https://github.com/CosmStack/repo-eject-cli.git
cd repo-eject-cli
# Install dependencies
npm install
# Build the project
npm run build
# Link for local development
npm link
# Run in development mode
npm run devAvailable Scripts
npm run type-check # TypeScript type checking
npm run lint # Code linting
npm run lint:fix # Fix linting issues
npm run format # Format code with Biome
npm run build # Build for production
npm run dev # Run in development mode🚧 Roadmap
This project is in active development. Planned features include:
- [ ] Advanced Filtering - Filter by last commit date, stars, language, etc.
- [ ] Bulk Operations - Select repositories by criteria (e.g., "all forks older than 1 year")
- [ ] Repository Backup - Export repository metadata before deletion
- [ ] Undo Functionality - Restore recently deleted repositories (if possible)
- [ ] Configuration File - Save preferences and filtering rules
- [ ] Repository Analytics - Detailed insights about your repository portfolio
🤝 Contributing
We welcome contributions! This project uses Conventional Commits for commit messages.
# 1. Fork and clone the repository
# 2. Create a feature branch
git checkout -b feature/amazing-feature
# 3. Make your changes and commit using conventional commits
git add .
npx cz # Interactive commit message helper
# 4. Push and create a Pull Request
git push origin feature/amazing-feature📄 License
MIT License - see the LICENSE file for details.
⚠️ Important: Always review the repositories selected for deletion. This tool permanently removes repositories from GitHub.
Made with ❤️ by CosmStack
