GITUX
A beautiful, minimalist TUI for Git.
GITUX is a terminal user interface for Git that prioritizes design and user experience. It wraps Git commands in a clean, visually appealing interface — so you can work with Git without leaving the terminal, and enjoy doing it.
Why GITUX?
Most Git TUIs are functional but not beautiful. GITUX is built with the belief that developer tools should be both powerful and pleasant to look at.
- Minimalist — No clutter, no overwhelming menus. Just what you need.
- Beautiful — Clean colors, thoughtful spacing, modern aesthetics.
- Fast — Direct subprocess calls to Git, no heavy abstractions.
Features
- View repository status with color-coded file states
- Browse commit history with details
- Stage and commit files with messages
- View diffs between files
- Manage branches (create, switch, delete)
- Merge branches
- Push to remote
- Performance metrics (startup time, memory usage)
Installation
Recommended — with pipx or uv (isolated install):
# With pipx
pipx install gitux
# Or with uv
uv tool install gitux
Or with pip:
pip install gitux
Requirements: Python 3.12+ and
gitinstalled on your system.
Install from source (for development)
git clone https://github.com/Hector-2710/gitux.git
cd gitux
uv sync --all-extras
uv run gitux
Usage
Inside any Git repository, just run:
gitux
# Show version
gitux --version
Keybindings
| Key | Action |
|---|---|
Tab |
Next section (Files / Commits / Diff) |
↑ / ↓ or j / k |
Scroll active section |
s / Enter |
Stage / unstage file |
a / A |
Stage all / unstage all files |
c |
Focus commit message |
Ctrl+Enter |
Create commit |
Ctrl+p |
Push to remote |
r |
Refresh status |
b |
Branches panel |
? |
Show help |
q |
Quit GITUX |
Stack
| Component | Technology | Purpose |
|---|---|---|
| Language | Python 3.12+ | Core runtime |
| TUI | Textual | Terminal interface with CSS styling |
| CLI | Typer | Command-line entry point |
| Git | subprocess + git CLI | Git operations |
| Metrics | psutil | Performance measurement |
Development
# Install dev dependencies
uv sync --all-extras
# Run tests
uv run pytest
# Run linter
uv run ruff check .
# Format code
uv run ruff format .
Project Structure
gitux/
├── src/
│ └── gitux/
│ ├── __init__.py
│ ├── __main__.py
│ ├── cli.py # Typer entry point
│ ├── domain/ # Data models
│ ├── git/ # Git infrastructure
│ ├── presenter/ # Business logic
│ ├── ui/ # Textual TUI
│ ├── metrics/ # Performance metrics
│ └── utils/ # Config, exceptions
├── tests/
│ ├── unit/
│ ├── integration/
│ └── e2e/
├── docs/
│ ├── context.md
│ ├── container.md
│ └── diagrams/
├── pyproject.toml
└── README.md
License
MIT
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 gitux-0.1.0.tar.gz.
File metadata
- Download URL: gitux-0.1.0.tar.gz
- Upload date:
- Size: 54.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10a2de27b659e039653bcf08348f4421e6d82b0debd554698439e35618ecf388
|
|
| MD5 |
c3d64b8c82a1fa470e94fb954b542abd
|
|
| BLAKE2b-256 |
8712837619b1987910e738653dbb363c1ba1d8f2900892577d0119f99138ba44
|
Provenance
The following attestation bundles were made for gitux-0.1.0.tar.gz:
Publisher:
publish.yml on Hector-2710/gitux
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gitux-0.1.0.tar.gz -
Subject digest:
10a2de27b659e039653bcf08348f4421e6d82b0debd554698439e35618ecf388 - Sigstore transparency entry: 2579465270
- Sigstore integration time:
-
Permalink:
Hector-2710/gitux@83a2ece89265acb13f711d65977affb21db1724d -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/Hector-2710
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@83a2ece89265acb13f711d65977affb21db1724d -
Trigger Event:
release
-
Statement type:
File details
Details for the file gitux-0.1.0-py3-none-any.whl.
File metadata
- Download URL: gitux-0.1.0-py3-none-any.whl
- Upload date:
- Size: 36.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea111d5ff1966f327f0b69cf36d417329fef35e0d658a16c59d467f5edbbefde
|
|
| MD5 |
e05623115e4137d3043276c57498b5b4
|
|
| BLAKE2b-256 |
81811e7312e3502d41c94ef1a7636c8fd6fcfe11594df1fdee7306642cd5db59
|
Provenance
The following attestation bundles were made for gitux-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on Hector-2710/gitux
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gitux-0.1.0-py3-none-any.whl -
Subject digest:
ea111d5ff1966f327f0b69cf36d417329fef35e0d658a16c59d467f5edbbefde - Sigstore transparency entry: 2579465302
- Sigstore integration time:
-
Permalink:
Hector-2710/gitux@83a2ece89265acb13f711d65977affb21db1724d -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/Hector-2710
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@83a2ece89265acb13f711d65977affb21db1724d -
Trigger Event:
release
-
Statement type: