A powerful GUI alternative for GitHub Desktop with CLI and Web interfaces
Project description
GitUI
A powerful GUI alternative for GitHub Desktop with CLI, GUI, and Web interfaces.
Project Background
GitUI was created to provide a comprehensive, cross-platform git management tool that rivals GitHub Desktop in functionality while offering greater flexibility through multiple interface options. While GitHub Desktop is an excellent tool, it has limitations: it's primarily designed for GitHub integration, lacks advanced git operations, and doesn't provide a web interface for remote management. GitUI addresses these gaps by implementing a complete git toolkit accessible through three distinct interfaces: a command-line interface for scripting and automation, a native GUI built with PySide6 for visual repository management, and a web interface for remote access and team collaboration. The project leverages the powerful GitPython library to provide robust git operations while maintaining a clean, intuitive user experience across all interfaces.
Application Scenarios
GitUI serves diverse use cases across the software development lifecycle. Individual developers can use the GUI interface for daily git operations like committing, branching, and merging with visual diff views and file staging. Teams working in CI/CD environments benefit from the CLI interface for automated git operations in scripts and pipelines. Remote development scenarios, such as managing repositories on cloud servers or developing through browser-based IDEs, are supported by the web interface which provides full git functionality through any modern browser. The OpenAI function-calling tools integration enables AI assistants to perform git operations, making GitUI ideal for developers building AI-powered development tools. Educational institutions can use GitUI to teach git concepts with its visual interface showing the repository state in real-time.
Hardware Compatibility
GitUI is designed to run on minimal hardware while providing responsive performance. The CLI interface requires only a terminal and can run on embedded systems with as little as 256MB RAM. The GUI interface, built on PySide6 (Qt), requires a graphical environment and benefits from 2GB RAM for smooth operation with large repositories. The web interface has minimal client-side requirements—any modern browser with JavaScript support—and the server component can run on standard cloud instances with 1GB RAM. GPU acceleration is not required for any interface. For optimal performance with repositories containing thousands of files or extensive commit history, 4GB RAM is recommended. Storage requirements depend on repository size, but GitUI itself occupies less than 50MB of disk space.
Operating Systems
GitUI supports all major operating systems where Python 3.9+ is available. Windows 10 and later are fully supported, with the GUI interface using native Windows styling. macOS 10.15 (Catalina) and later versions are supported, with native macOS appearance in the GUI. Linux distributions with glibc 2.28+ are supported, including Ubuntu 18.04+, Debian 10+, Fedora 30+, and Arch Linux. The CLI interface works in any terminal environment including WSL on Windows. The web interface is accessible from any operating system with a modern web browser, making it ideal for mixed-OS team environments. BSD systems are not officially tested but may work with Python support.
Dependencies
GitUI requires Python 3.9 or later. Core dependencies include PySide6 (6.5.0+) for the GUI interface, providing native Qt widgets with excellent cross-platform compatibility. GitPython (3.1.0+) handles all git operations through a Pythonic API. Flask (2.3.0+) powers the web interface with REST API endpoints. Click (8.1.0+) provides the CLI framework with rich formatting support. Rich (13.0.0+) enables beautiful terminal output with colors and tables. Optional dependencies for enhanced functionality include pyqtgraph for commit history visualization, watchdog for file system monitoring, and python-dateutil for date parsing. Development dependencies include pytest for testing, ruff for linting, and mypy for type checking.
Installation
Install GitUI using pip for the latest stable release. Create a virtual environment first to isolate dependencies: python -m venv .venv && source .venv/bin/activate. Then install GitUI: pip install gitui. For development, clone the repository and install in editable mode: git clone https://github.com/cycleuser/GitUI.git && cd GitUI && pip install -e ".[dev]". On Linux, you may need to install Qt dependencies: Ubuntu/Debian requires libqt6gui6, Fedora requires qt6-qtbase-gui. On macOS, Homebrew can install Python and dependencies. On Windows, the pip installation includes all necessary dependencies. After installation, verify with gitui --version.
Usage
GitUI provides three interface modes. Launch the GUI by running gitui without arguments or gitui gui explicitly. The GUI opens with a sidebar showing branches, remotes, tags, and stashes. The center panel displays file changes with staging area, and the right panel shows diffs. Use keyboard shortcuts Ctrl+N for new branch, Ctrl+P for push, and F5 for refresh.
For CLI usage, gitui status shows repository status, gitui commit -m "message" creates commits, gitui branch lists branches, and gitui log --oneline shows history. Unified flags include -V for version, -v for verbose, -o for output file, --json for JSON output, and -q for quiet mode.
For web interface, run gitui web --port 5000 and open http://localhost:5000 in your browser. The web interface provides the same functionality as the GUI with responsive design for mobile devices.
Screenshots
| GUI Interface | Web Interface |
|---|---|
License
GitUI is licensed under the GNU General Public License v3.0 (GPL-3.0). This means you can use, modify, and distribute the software freely, but any derivative works must also be licensed under GPL-3.0. See the LICENSE file for the full license text.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gitui-1.0.0.tar.gz.
File metadata
- Download URL: gitui-1.0.0.tar.gz
- Upload date:
- Size: 45.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7b3917f60afc3af67dc0ec705e2340a4a64c216f00efa1e024e86e3464b2f09
|
|
| MD5 |
7e6026453ec6caa0392868249fe23f7e
|
|
| BLAKE2b-256 |
de4e27a534df5d215f2ef3b30dabd9717f26dad11eff716546a2a980aeacb232
|
File details
Details for the file gitui-1.0.0-py3-none-any.whl.
File metadata
- Download URL: gitui-1.0.0-py3-none-any.whl
- Upload date:
- Size: 41.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6853ac4d93c9374f23debfcefeff2145acb33bcd2c1ed88f9d49ad2c5d52c3e
|
|
| MD5 |
01d1a948518d1b822fe353fe87ea2dd4
|
|
| BLAKE2b-256 |
9f6d1716c4ae3706e590eb13a836c0caab06f88ed692480f8300a059f22b05ef
|