Skip to main content

CLI tool to automate Python project setup with GitHub integration and VS Code configuration

Project description

UtkarshPy

CI PyPI Python Versions License Install with pipx YouTube Demo

UtkarshPy Logo

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

Demo

Watch the tool in action:

UtkarshPy Demo Video
🎬 Click on the thumbnail above to watch the YouTube video! 🎬


Installation

Option 1: Install with pipx (Recommended)

python -m pip install --user pipx
python -m pipx ensurepath
pipx install uv
pipx install utkarshpy

Option 2: Install with pip

pip install utkarshpy

Usage

utkarshpy [--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.

Features

  • 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-push flag performs local setup without creating or pushing to GitHub.
  • Local Git Setup: Initializes a new Git repository and generates .gitignore, LICENSE, and README.md.
  • Virtual Environment: Creates a .venv using uv venv and manages dependencies with uv.
  • VS Code Configuration: Generates .vscode/settings.json with auto-save, formatting, and Jupyter settings.
  • Custom Templates: Automatically runs template.py if present to generate extra folders and files after dependencies are installed.

Step-by-Step Workflow

  1. Invoke the CLI
    utkarshpy [--no-push]
    
  2. (Optional) Enter Repository Name & Visibility
    • If --no-push is omitted, you'll be prompted:
      • Repository Name (only letters, numbers, -, and _)
      • Visibility (public or private, default: public)
  3. GitHub CLI Check & Authentication
    • Verifies gh installation or prompts to install.
    • Runs gh auth login if not already authenticated.
  4. Git Configuration
    • Sets global user.name and user.email from your GitHub account or prompts for input.
  5. Local Initialization
    • Installs uv if not already installed.
    • Runs uv init . to create project files and removes redundant .gitignore.
  6. File Generation
    • Downloads a Python-specific .gitignore from GitHub.
    • Fetches an Apache 2.0 LICENSE from apache/.github repository.
    • Creates a basic README.md with project name.
  7. Virtual Environment & Dependencies
    • Ensures pyproject.toml exists or errors.
    • Creates .venv via uv venv.
    • Installs requirements.txt (if present) using uv add -r requirements.txt.
    • Syncs dependencies with uv sync to create/update lockfile.
    • Provides activation instructions for the virtual environment.
  8. VS Code Setup
    • Writes .vscode/settings.json with recommended Python and Jupyter settings.
  9. (GitHub Only) Repository Creation & Push
    • If --no-push is not used:
      • Commits initial files and renames branch to main.
      • Executes gh repo create with chosen visibility.
      • Pushes to origin and displays the repository URL.
    • If --no-push is used:
      • Skips authentication, remote creation, and push entirely.

Example Output

Standard Run (with GitHub push)

🚀 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

Local-Only Run (skip GitHub)

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

License

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!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

utkarshpy-0.3.15.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

utkarshpy-0.3.15-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file utkarshpy-0.3.15.tar.gz.

File metadata

  • Download URL: utkarshpy-0.3.15.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for utkarshpy-0.3.15.tar.gz
Algorithm Hash digest
SHA256 b864908c4bfe505ba0b663c2844d448589a11bbcc8d160c9946c91035ab47b9d
MD5 982ca0881d584334798e899a04938b82
BLAKE2b-256 177ced0f219cdd24c816f7413060ebb248f664703d168be7442340ef14d702e9

See more details on using hashes here.

File details

Details for the file utkarshpy-0.3.15-py3-none-any.whl.

File metadata

  • Download URL: utkarshpy-0.3.15-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for utkarshpy-0.3.15-py3-none-any.whl
Algorithm Hash digest
SHA256 914831d38e17d33100740835a6ff521a8acac3c58b2ec78c9d521261cfd17867
MD5 ca32bf6dd266724939361583484e8fdd
BLAKE2b-256 b2bd71d268c30996649f15dfc38b1992b5267c0944eeee588c6fbb3511594574

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page