UtkarshPy is a CLI tool that streamlines Python project setup by automating:
- Environment checks (Python version ≥ 3.8)
- GitHub authentication and repository creation
- Local Git initialization
- Virtual environment setup with
uv - VS Code workspace configuration
Watch the tool in action:

🎬 Click on the thumbnail above to watch the YouTube video! 🎬
Option 1: Install with pipx (Recommended)
python -m pip install --user pipx
python -m pipx ensurepath
pipx install uv
pipx install utkarshpyOption 2: Install with pip
pip install utkarshpyutkarshpy [--version] [--no-push]--version
Show the tool version and exit.--no-push
Skip all GitHub-related operations: no authentication prompts, no remote creation or push.
- Python Version Check: Verifies that Python 3.8 or higher is installed.
- GitHub Integration: Uses GitHub CLI (
gh) for authentication, repository creation, and push. - Skip GitHub Operations:
--no-pushflag performs local setup without creating or pushing to GitHub. - Local Git Setup: Initializes a new Git repository and generates
.gitignore,LICENSE, andREADME.md. - Virtual Environment: Creates a
.venvusinguv venvand manages dependencies withuv. - VS Code Configuration: Generates
.vscode/settings.jsonwith auto-save, formatting, and Jupyter settings. - Custom Templates: Automatically runs
template.pyif present to generate extra folders and files after dependencies are installed.
- Invoke the CLI
utkarshpy [--no-push]
- (Optional) Enter Repository Name & Visibility
- If
--no-pushis omitted, you'll be prompted:- Repository Name (only letters, numbers,
-, and_) - Visibility (
publicorprivate, default:public)
- Repository Name (only letters, numbers,
- If
- GitHub CLI Check & Authentication
- Verifies
ghinstallation or prompts to install. - Runs
gh auth loginif not already authenticated.
- Verifies
- Git Configuration
- Sets global
user.nameanduser.emailfrom your GitHub account or prompts for input.
- Sets global
- Local Initialization
- Installs
uvif not already installed. - Runs
uv init .to create project files and removes redundant.gitignore.
- Installs
- File Generation
- Downloads a Python-specific
.gitignorefrom GitHub. - Fetches an Apache 2.0
LICENSEfrom apache/.github repository. - Creates a basic
README.mdwith project name.
- Downloads a Python-specific
- Virtual Environment & Dependencies
- Ensures
pyproject.tomlexists or errors. - Creates
.venvviauv venv. - Installs
requirements.txt(if present) usinguv add -r requirements.txt. - Syncs dependencies with
uv syncto create/update lockfile. - Provides activation instructions for the virtual environment.
- Ensures
- VS Code Setup
- Writes
.vscode/settings.jsonwith recommended Python and Jupyter settings.
- Writes
- (GitHub Only) Repository Creation & Push
- If
--no-pushis not used:- Commits initial files and renames branch to
main. - Executes
gh repo createwith chosen visibility. - Pushes to
originand displays the repository URL.
- Commits initial files and renames branch to
- If
--no-pushis used:- Skips authentication, remote creation, and push entirely.
- If
🚀 Python Project Automator - Utkarsh Gaikwad 🚀
Platform detected: Linux
Enter GitHub repository name: my-project
Visibility [public/private] (default: public): public
✓ GitHub authentication verified
⚙️ Checking Git configuration...
✓ Initialized uv folder
📂 Creating project structure...
✓ Downloaded .gitignore
✓ Created README.md
🔄 Creating virtual environment...
✓ Virtual environment created
📦 Installing dependencies...
✓ Dependencies installed
✓ uv synced to lockfile
🔌 Virtual environment activation:
source .venv/bin/activate
✓ VS Code settings configured with your new settings!
🔄 Creating public repository 'my-project'...
✓ Repository created and pushed: https://github.com/username/my-project
✅ Setup Complete! Repository: https://github.com/username/my-project
➤ Local path: /path/to/my-project
utkarshpy --no-push🚀 Python Project Automator - Utkarsh Gaikwad 🚀
Platform detected: Linux
⚠️ --no-push mode: skipping all GitHub prompts and authentication
🔄 Initializing local uv git repository...
📂 Creating project structure...
🔄 Creating virtual environment...
✓ Virtual environment created
📦 No requirements.txt found
🔌 Virtual environment activation:
source .venv/bin/activate
✓ VS Code settings configured with your new settings!
✅ Setup Complete! (no GitHub repo created)
➤ Local path: /path/to/project
This project is licensed under the Apache License 2.0. See LICENSE for details.
This CLI tool saves time by automating tedious setup tasks, ensuring a consistent and streamlined workflow for Python projects!
