╭━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╮
┃ ┃
┃ ██████╗ ██╗ ██╗███╗ ██╗ ██████╗ ██╗████████╗ ┃
┃ ██╔══██╗██║ ██║████╗ ██║ ██╔════╝ ██║╚══██╔══╝ ┃
┃ ██████╔╝██║ ██║██╔██╗ ██║ ██║ ███╗██║ ██║ ┃
┃ ██╔══██╗██║ ██║██║╚██╗██║ ██║ ██║██║ ██║ ┃
┃ ██║ ██║╚██████╔╝██║ ╚████║ ╚██████╔╝██║ ██║ ┃
┃ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ┃
┃ ┃
┃ ⚡ Git Operations Made Effortless ⚡ ┃
┃ One Command · Zero Hassle · Full Control ┃
┃ ┃
╰━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╯
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.
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 pushThat's it. One command does all four steps, auto-generates a meaningful commit message, handles conflicts, and pushes — safely.
| 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 |
| 🤖 Multi-Provider AI | Support for Local, OpenAI, Anthropic, Google, Grok providers |
# Install
pip install run-git
# Upgrade to latest version
pip install --upgrade run-gitRequires Python 3.8+. Works on macOS, Linux, and Windows.
First time? Set your GitHub token once with
run-git initand you're ready to go. Already installed? Upgrade withpip install --upgrade run-git
run-git push # auto commit message + push
run-git push -m "feat: add login" # custom commit messagerun-git # full TUI — no commands to memoriserun-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 controlrun-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_hereRUN_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 --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](https://www.conventionalcommits.org/) 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!
```bash
# Clone and setup
git clone https://github.com/himanshu231204/gitpush.git
cd gitpush
# Install in development mode
pip install -e ".[test]"
# Run tests
pytest
Distributed under the MIT License — see LICENSE for details.
Himanshu Kumar — @himanshu231204
Built with ❤️ to make every developer's Git life a little simpler.