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

RUN-GIT

Git Operations Made Effortless — One command to add, commit, pull, and push with smart auto-messages.

PyPI version Downloads Python 3.8+ License: MIT GitHub Stars

RUN-GIT Hero


Overview

RUN-GIT is a Python-powered CLI that simplifies Git workflows into single, intuitive commands. It handles the common add-commit-pull-push sequence automatically, generates meaningful commit messages, provides interactive branch management, and integrates with GitHub for repository creation.

Use case: Developers who run the same Git commands dozens of times daily and want a faster way to commit and push.

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


Quick Push

Quick Push

One command does everything: run-git push


AI Assistant

AI Assistant

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


Features

Feature Description
One-Command Push run-git push executes add → commit → pull → push automatically
Smart Commit Messages Auto-generates Conventional Commits style messages based on staged changes
Interactive TUI Full terminal menu for navigation without memorizing flags
GitHub Integration Create public/private repositories directly from CLI
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 before accidentally pushing sensitive files (.env, tokens)
Conflict Helper Guided interactive merge conflict resolution
Rich Status View Color-coded table-based status output
AI Assistant Generate commit messages, code reviews, and PR descriptions with AI
Tag & Release Create tags, push to remote, and publish GitHub releases with one click

Installation

pip install run-git

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

First time: Set your GitHub token with run-git init Upgrade: pip install --upgrade run-git


Quick Start

Push changes

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

Interactive menu

run-git          # full TUI — no commands to memorize

Create GitHub repository

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

Tag & Release

# Create a tag
run-git tag v1.0.0

# Create tag with message
run-git tag v1.0.0 -m "First stable release"

# Create tag + push to remote
run-git tag v1.0.0 --push

# One-click: Create tag + push + GitHub release
run-git tag v1.0.0 -r

# Create release with AI-generated notes
run-git tag v1.0.0 -r --ai

# Create draft release
run-git tag v1.0.0 -r --draft

# Release from existing tag
run-git release v1.0.0
run-git release v1.0.0 -t "Version 1.0.0" -b "Bug fixes and improvements"

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 custom commit message
run-git new <name> Create a new GitHub repository
run-git init Initialize a local or cloned repository
run-git status Rich color-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 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 current
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 last commit (keeps changes staged)
run-git config Manage configuration
run-git tag <name> Create and push a tag
run-git tag <name> -r Create tag + GitHub release
run-git release <name> Create release from existing tag
run-git --version Show installed version
run-git --help Show help for any command

Architecture

gitpush/
├── cli.py                 # Main CLI entry point (Click)
├── commands/              # Modular command handlers
│   ├── push.py           # Push command
│   ├── init.py           # Init command
│   ├── status.py         # Status & log commands
│   ├── branch.py         # Branch 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
├── ui/                   # Terminal UI (Rich, questionary)
├── utils/                # Utilities (validators, formatters)
├── config/               # Configuration management
└── exceptions.py        # Custom exceptions

Design principles:

  • Separation of concerns: commands/ (thin orchestration), core/ (business logic), ui/ (terminal rendering)
  • Testable: Core logic independent of CLI dependencies
  • Extensible: New commands added as isolated modules

Auto Commit Messages

RUN-GIT analyzes staged changes and generates Conventional Commits style messages:

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

Comparison

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

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.


Contributing

Contributions, bug reports, and feature requests are welcome.

# Clone and setup
git clone https://github.com/himanshu231204/run-git.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


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.5.0.tar.gz (1.4 MB 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.5.0-py3-none-any.whl (95.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for run_git-1.5.0.tar.gz
Algorithm Hash digest
SHA256 578a3f85b9cb0f51a0b9e797bf8474c05c6be93096924b6c698ed8fbad70520a
MD5 530d3ffe4daf9149644cf5baabc867a2
BLAKE2b-256 ec42dd43924e7d6ee4cad7e05d53a2f5a49e5e9eab12fce132efcf93ee63e08f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: run_git-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 95.3 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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd10e9177937e08927beff4d52156305bfae2e36d43f132e80c6d3fa83b9817d
MD5 6de6b827aab65e1e9b5e9ed6a5ef58d3
BLAKE2b-256 ee2f325676acf1e62b6f0b3cffc2298ddeb31cc0426633edd732c69f5bb3f11f

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