Skip to main content

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
GUI Web

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


Download files

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

Source Distribution

gitui-1.0.0.tar.gz (45.0 kB view details)

Uploaded Source

Built Distribution

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

gitui-1.0.0-py3-none-any.whl (41.5 kB view details)

Uploaded Python 3

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

Hashes for gitui-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e7b3917f60afc3af67dc0ec705e2340a4a64c216f00efa1e024e86e3464b2f09
MD5 7e6026453ec6caa0392868249fe23f7e
BLAKE2b-256 de4e27a534df5d215f2ef3b30dabd9717f26dad11eff716546a2a980aeacb232

See more details on using hashes here.

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

Hashes for gitui-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c6853ac4d93c9374f23debfcefeff2145acb33bcd2c1ed88f9d49ad2c5d52c3e
MD5 01d1a948518d1b822fe353fe87ea2dd4
BLAKE2b-256 9f6d1716c4ae3706e590eb13a836c0caab06f88ed692480f8300a059f22b05ef

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