Skip to main content

Git automation CLI — one command to add, commit, pull & push with smart commit messages, TUI, and GitHub repo creation

Project description

╭━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╮
┃                                                                    ┃
┃    ██████╗ ██╗   ██╗███╗   ██╗      ██████╗ ██╗████████╗         ┃
┃    ██╔══██╗██║   ██║████╗  ██║     ██╔════╝ ██║╚══██╔══╝         ┃
┃    ██████╔╝██║   ██║██╔██╗ ██║     ██║  ███╗██║   ██║            ┃
┃    ██╔══██╗██║   ██║██║╚██╗██║     ██║   ██║██║   ██║            ┃
┃    ██║  ██║╚██████╔╝██║ ╚████║     ╚██████╔╝██║   ██║            ┃
┃    ╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═══╝      ╚═════╝ ╚═╝   ╚═╝            ┃
┃                                                                    ┃
┃              ⚡ Git Operations Made Effortless ⚡                  ┃
┃          One Command · Zero Hassle · Full Control                 ┃
┃                                                                    ┃
╰━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╯

PyPI version Downloads Tests Python 3.8+ License: MIT PyPI - Status GitHub Stars GitHub Release

Stop memorising Git commands. Start shipping code.

RUN-GIT is a Python-powered CLI that wraps Git's most common workflows into a single, intuitive command — with auto commit messages, interactive menus, branch management, GitHub repo creation, and more.

📦 Install · 🚀 Quick Start · 📖 Commands · 🏗️ Architecture


✨ Why RUN-GIT?

Tired of typing four commands every time you want to save your work?

# The old way — every single time
git add .
git commit -m "update"
git pull origin main
git push origin main

# The RUN-GIT way
run-git push

That's it. One command does all four steps, auto-generates a meaningful commit message, handles conflicts, and pushes — safely.


🎯 Features

Feature Description
One-Command Push run-git push does add → commit → pull → push automatically
🤖 Smart Commit Messages Auto-generates Conventional Commits style messages based on your changes
🎨 Interactive TUI Full terminal menu — no flags to remember
🆕 GitHub Repo Creator Create public/private repos from the CLI without leaving your terminal
🌿 Branch Management Create, switch, merge, and delete branches with simple commands
🌳 Commit Graph Visualize commit history with ASCII graphs and file diffs
🔐 Secret File Guard Warns you before accidentally pushing .env, tokens, or credentials
🔀 Conflict Helper Guided, interactive merge-conflict resolution
🔄 Smart Sync Pull + push in one step, with auto-retry on failure
📊 Rich Status View Colour-coded, table-based status output powered by Rich
🔧 Remote Management Intelligently handles existing remotes and URL mismatches
🔐 PRO Feature Gating Tiered access (FREE/PRO) with usage limits and config commands
🤖 AI Code Review Full diff or single-file AI-powered code review with detailed feedback
📝 AI PR Descriptions Auto-generate PR descriptions from branch changes
💬 AI Commit Messages AI-generated commit messages with context awareness

🤖 AI Assistant (v1.4.0)

Get AI-powered code reviews, PR descriptions, and commit messages directly from your terminal.

Features

Code Review - Get detailed AI-powered code reviews:

  • Full Review: Review all changes in your diff
  • Single File: Review specific files without reviewing entire diff
  • Categories: Bugs, Code Quality, Performance, Security, Best Practices

PR & Commit AI:

  • Auto-generate PR descriptions from branch changes
  • AI commit messages with context awareness

50+ Supported Models:

Provider Example Models
OpenAI gpt-4o, o1, o3-mini
Anthropic claude-4-sonnet, claude-4-opus
Google gemini-2.0-flash, gemini-2.5-pro
Grok grok-2, grok-2-vision
Local llama3.3, qwen2.5, deepseek-r1

Configuration:

# Via interactive menu
run-git
# Navigate to AI Assistant > Configure Provider

# Via environment variables
RUN_GIT_AI_PROVIDER=openai OPENAI_API_KEY=sk-... run-git commit-ai

📦 Installation

# Install
pip install run-git

# Upgrade to latest version
pip install --upgrade run-git

Requires Python 3.8+. Works on macOS, Linux, and Windows.

First time? Set your GitHub token once with run-git init and you're ready to go. Already installed? Upgrade with pip install --upgrade run-git


🚀 Quick Start

Push your changes (most common workflow)

run-git push                        # auto commit message + push
run-git push -m "feat: add login"  # custom commit message

Launch the interactive menu

run-git          # full TUI — no commands to memorise

Create a new GitHub repository

run-git new my-project                              # guided wizard
run-git new my-project --quick                      # sensible defaults, no prompts
run-git new my-api -d "REST API" --public -g Python -l MIT   # full control

Initialise a repository

run-git init                                    # new local repo
run-git init https://github.com/user/repo.git  # clone existing repo

### Set your PRO API key
```bash
run-git config set-api-key rg_your_key_here

Use a specific AI provider (e.g., Google Gemini)

RUN_GIT_AI_PROVIDER=google GOOGLE_API_KEY=your_google_key run-git commit-ai

📖 Command Reference

Command Description
run-git Open the interactive TUI menu
run-git push Add, commit, pull, and push in one step
run-git push -m "<msg>" Push with a custom commit message
run-git new <name> Create a new GitHub repository
run-git init Initialise a local or cloned repository
run-git status Rich colour-coded repository status
run-git log Formatted commit history
run-git graph Visual commit history (table view)
run-git graph --graph ASCII graph with branch lines
run-git graph --tree Branch tree overview
run-git graph --commit <hash> View specific commit details
run-git graph --commit <hash> --diff View commit with file changes
run-git graph -i Interactive commit selection
run-git branch List all branches
run-git branch <name> Create a new branch
run-git switch <name> Switch to a branch
run-git merge <name> Merge a branch into the current one
run-git pull Pull latest changes
run-git sync Pull then push (keep in sync)
run-git remote Show configured remotes
run-git stash Stash uncommitted changes
run-git undo Undo the last commit (keeps changes staged)
run-git commit-ai Generate AI commit message
run-git pr-ai Generate AI PR description
run-git review-ai Generate AI code review
run-git config Manage configuration (PRO, AI provider)
run-git --version Show installed version
run-git --help Show help for any command

🏗️ Architecture

RUN-GIT v1.2.0+ features a modular, maintainable architecture:

gitpush/
├── cli.py                    # Main CLI entry point (59 lines)
├── commands/                 # Modular command handlers
│   ├── push.py              # Push command
│   ├── init.py              # Init command
│   ├── status.py            # Status & log commands
│   ├── branch.py            # Branch operations
│   ├── remote.py            # Remote management
│   ├── stash.py             # Stash operations
│   ├── github.py            # GitHub integration
│   └── graph.py             # Commit graph visualization
├── core/                    # Business logic
│   ├── git_operations.py    # Git operations
│   ├── commit_generator.py  # Auto commit messages
│   ├── conflict_resolver.py # Merge conflict handling
│   ├── github_manager.py    # GitHub API
│   └── graph_renderer.py    # Graph rendering logic
├── ui/                      # Terminal UI
│   ├── banner.py            # Banner & messages
│   └── interactive.py       # Interactive menus
├── utils/                   # Utilities
│   ├── validators.py         # Input validation
│   ├── formatters.py        # Output formatting
│   └── file_helpers.py     # File operations
├── config/                  # Configuration
│   └── settings.py          # Settings management
└── exceptions.py            # Custom exceptions

Benefits

  • Maintainable: Each command is isolated in its own module
  • Testable: Unit test each component independently
  • Extensible: Add new commands easily
  • Clean Code: Reusable utilities and proper error handling

🤖 Auto Commit Messages

RUN-GIT analyses your staged changes and generates Conventional Commits style messages automatically:

feat: add authentication module (3 files added)
fix: update user validation logic (2 files modified)
docs: update README and contributing guide (1 file modified)
refactor: remove deprecated helper functions (2 files deleted)

No more git commit -m "stuff" or git commit -m "fix".


🆚 How Does It Compare?

Raw Git GitHub CLI (gh) RUN-GIT
Push in one command
Auto commit messages
Interactive TUI menu Partial
Create GitHub repos
Secret file warnings
Learning curve High Medium Zero

RUN-GIT is a speed layer on top of Git — not a replacement. Use it for daily work; reach for git or gh when you need fine-grained control.


💡 Who Is It For?

  • 🎓 Students & beginners learning Git without drowning in flags
  • 🚀 Hackathon builders who need to ship fast
  • Indie developers doing solo projects with quick iteration cycles
  • 🔁 Any developer who runs the same four Git commands dozens of times a day

🤝 Contributing

Contributions, bug reports, and feature requests are all welcome!

# Clone and setup
git clone https://github.com/himanshu231204/gitpush.git
cd gitpush

# Install in development mode
pip install -e ".[test]"

# Run tests
pytest

📝 License

Distributed under the MIT License — see LICENSE for details.


👨‍💻 Author

Himanshu Kumar@himanshu231204

Built with ❤️ to make every developer's Git life a little simpler.


If RUN-GIT saves you time, please consider giving it a ⭐ — it helps others find the project!

Star History Chart

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

run_git-1.4.0.tar.gz (391.1 kB view details)

Uploaded Source

Built Distribution

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

run_git-1.4.0-py3-none-any.whl (79.9 kB view details)

Uploaded Python 3

File details

Details for the file run_git-1.4.0.tar.gz.

File metadata

  • Download URL: run_git-1.4.0.tar.gz
  • Upload date:
  • Size: 391.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for run_git-1.4.0.tar.gz
Algorithm Hash digest
SHA256 f6dc97940fecb104eff137213fab815f03b59de3a64c2ac49e4d6076634f7843
MD5 5bdebe9f5084fc83f7fb5fac3b2c3ba2
BLAKE2b-256 d3e6ab20f442dd274146407cdefe96d02a8df310dd31316ecd8c8d710796b7a9

See more details on using hashes here.

File details

Details for the file run_git-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: run_git-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 79.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for run_git-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b8e3c00eee6d2dced47a73ae707cbbab78ae326cd0729349cc4c49fe9ca82482
MD5 435065839eabef11b4fbca1a76ea10af
BLAKE2b-256 4786a60292152ef32c98b4fb99695437f04cf66efacf040aaa6dd56b1fdd2c2c

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