A powerful command-line tool for organizing, managing, and working with multiple Git repositories. Shelly helps developers efficiently manage their codebase collections with intelligent categorization, bulk operations, and seamless integrations.
- π― Smart Repository Cloning - Clone repositories with automatic categorization
 - π Category-based Organization - Organize repos by work, personal, learning, etc.
 - π Repository Listing - View all repositories grouped by category
 - βοΈ Interactive Configuration - Easy setup wizard for preferences
 - π Editor Integration - Auto-open repositories in your preferred editor
 - π Repository Caching - Fast access to repository metadata
 - π Git Status Dashboard - View status of all repositories at once
 - π Bulk Git Operations - Sync, pull, or check status across multiple repos
 - ποΈ Project Initialization - Create new projects with opinionated structures
 
- π·οΈ Project Type Detection - Auto-detect React, Python, Rust, etc. projects
 - π GitHub/GitLab Integration - Repository metadata, search, and CLI tool integration
 - π§ CI/CD Pipeline Awareness - Show build status and deployment information
 - π¦ Package Manager Integration - Dependency scanning and updates
 
# Clone and install in development mode
git clone https://github.com/Domains18/shelly.git
cd shelly
pip install -e .# Run the interactive setup wizard
shelly config --setupThis will configure:
- Base directory for repositories
 - Organization method (category/platform/flat)
 - Preferred editor
 - Default categories
 
# Clone a repository (will prompt for category)
shelly clone https://github.com/facebook/react
# or use shorthand
shelly --clone https://github.com/facebook/react
# Initialize a new project
shelly init my-api --language typescript --framework nestjs --orm prisma
# or use shorthand
shelly --init my-project
# List all repositories
shelly list
# List repositories in specific category
shelly list --category work
# Git operations across repositories
shelly git sync --category work
shelly status --detailed
# Open a repository in your editor
shelly open react
# View configuration
shelly config --listShelly can create new projects with opinionated directory structures and configurations for various languages and frameworks.
| Language | Frameworks | ORMs/Databases | 
|---|---|---|
| TypeScript | NestJS, Express, Fastify, Koa | Prisma, TypeORM, Sequelize, Mongoose, Drizzle | 
| JavaScript | Express, Fastify, Koa, React, Vue, Svelte | Prisma, Sequelize, Mongoose, Knex | 
| Python | FastAPI, Django, Flask, Quart | SQLAlchemy, Django ORM, Tortoise ORM, Peewee | 
| Go | Gin, Echo, Fiber, Chi | GORM, Ent, SQLX | 
| Rust | Axum, Warp, Actix-web, Rocket | Diesel, SQLX, Sea-ORM | 
| Java | Spring Boot, Quarkus, Micronaut | JPA, Hibernate, MyBatis | 
- API - REST API with controllers, services, and models
 - Microservice - Microservice with event handling and DTOs
 - Monolith - Monolithic application structure
 - GraphQL - GraphQL API setup
 - CLI - Command line tool structure
 - Library - Library/package template
 - Web App - Full-stack web application
 
# Interactive mode
shelly init my-project
# TypeScript NestJS API with Prisma
shelly init backend-api --language typescript --framework nestjs --orm prisma --type api
# Go microservice with Gin and GORM
shelly init user-service --language go --framework gin --orm gorm --type microservice
# Python FastAPI with SQLAlchemy
shelly init data-api --language python --framework fastapi --orm sqlalchemy --type api
# Shorthand syntax
shelly --init my-new-projectFor a TypeScript NestJS API, Shelly creates:
my-api/
βββ src/
β   βββ modules/         # Feature modules
β   βββ common/          # Shared utilities
β   β   βββ decorators/
β   β   βββ filters/
β   β   βββ guards/
β   β   βββ interceptors/
β   β   βββ pipes/
β   βββ config/          # Configuration
β   βββ controllers/     # API controllers
β   βββ services/        # Business logic
β   βββ entities/        # Database entities
β   βββ repositories/    # Data access layer
βββ test/                # Test files
β   βββ unit/
β   βββ integration/
β   βββ e2e/
βββ prisma/              # Database schema (if Prisma selected)
βββ package.json         # Dependencies and scripts
βββ tsconfig.json        # TypeScript configuration
βββ .gitignore           # Git ignore rules
βββ README.md            # Project documentation
| Command | Description | Example | 
|---|---|---|
clone <url> | 
Clone repository with category selection | shelly clone https://github.com/user/repo | 
init <name> | 
Initialize new project with opinionated structure | shelly init my-api --language typescript --framework nestjs | 
list | 
List all managed repositories | shelly list --category work | 
open <repo> | 
Open repository in preferred editor | shelly open my-project | 
config | 
Manage configuration settings | shelly config --setup | 
status | 
Show git status across repositories | shelly status --detailed | 
git sync | 
Synchronize repositories with remotes | shelly git sync --category work | 
roadmap | 
View development roadmap | shelly roadmap --next | 
| Option | Equivalent Command | Description | 
|---|---|---|
--clone <url> | 
clone <url> | 
Quick clone syntax | 
--init <name> | 
init <name> | 
Quick project initialization | 
--list | 
list | 
Quick list repositories | 
--status | 
status | 
Quick status check | 
--config-setup | 
config --setup | 
Quick setup configuration | 
Shelly stores configuration in ~/.shelly/config.json:
{
  "auto_open_editor": true,
  "base_dir": "/home/user/Documents/github",
  "categories": [
    "work",
    "personal", 
    "learning",
    "opensource",
    "misc"
  ],
  "organization_method": "category",
  "preferred_editor": "vscode"
}- Visual Studio Code (
vscode) - Cursor (
cursor) - WebStorm (
webstorm) - IntelliJ IDEA (
intellij) - Sublime Text (
sublime) - Atom (
atom) - Vim/Neovim (
vim/nvim) 
- Fork the repository
 - Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
 
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/
# Run with coverage
pytest --cov=shelly tests/# Setup work category
shelly config --setup
# Clone work repositories
shelly clone https://github.com/company/backend-api
shelly clone https://github.com/company/frontend-app
shelly clone https://github.com/company/mobile-app
# List work projects
shelly list --category work
# Open entire work environment
shelly open backend-api# Clone learning resources
shelly --clone https://github.com/microsoft/TypeScript
shelly --clone https://github.com/rust-lang/book
# Quick access to learning materials
shelly list --category learning
shelly open TypeScript# Clone and categorize open source projects
shelly clone https://github.com/facebook/react
# Select "opensource" category
# Track your contributions
shelly list --category opensource- π Documentation
 - π Bug Reports
 - π‘ Feature Requests
 - π¬ Discussions
 
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by the need for better repository management in modern development workflows
 - Built with Click and Rich
 - Special thanks to the open source community for inspiration and feedback
 
Made with β€οΈ for developers who manage multiple repositories