| Crates.io | gituie |
| lib.rs | gituie |
| version | 0.2.4 |
| created_at | 2026-01-20 20:50:41.651711+00 |
| updated_at | 2026-01-20 22:24:33.968545+00 |
| description | A Git TUI written in Rust |
| homepage | |
| repository | https://github.com/ekeel/Gitui |
| max_upload_size | |
| id | 2057546 |
| size | 111,801 |
A Terminal User Interface (TUI) for Git written in Rust, providing an intuitive way to interact with your Git repositories.
Multiple Views:
File Operations:
Branch Management:
Remote Operations:
cargo install gituie
Clone this repository:
git clone <repository-url>
cd RustTest
Build from source:
cargo build --release
The binary will be available at target/release/gtek
(Optional) Add to PATH or copy to a directory in your PATH:
cp target/release/gtek /usr/local/bin/
Run from any directory within a Git repository:
gtek
Or specify a repository path:
gtek /path/to/repo
If running from source:
cargo run
1 - Switch to Files view2 - Switch to History view3 - Switch to Branches view↑/↓ or k/j - Navigate up/downr - Refresh current viewq - Quit applications - Stage selected filea - Stage all filesd - Discard changes selected filec - Open commit dialogp - Pull from remoteP - Push to remoteS - Sync (pull + push)Enter - Refresh diff for selected fileEnter or o - Checkout selected branchEnter - Commit with messageEsc - Cancel commitBackspace - Delete charactersrc/
├── main.rs - Application entry point and main loop
├── app.rs - Application state and data structures
├── git.rs - Git operations wrapper (using git2-rs)
├── input.rs - Keyboard input handling
├── ui.rs - Main UI rendering and layout
├── ui_files.rs - Files view rendering
├── ui_history.rs - History view rendering
└── ui_branches.rs - Branches view rendering
ratatui - Terminal UI frameworkcrossterm - Cross-platform terminal manipulationgit2 - libgit2 bindings for Git operationsanyhow - Error handlingchrono - Date/time formattingThe application displays:
┌─────────────────────────────────────────────────┐
│ Files (40%) │ Diff Preview (60%) │
│ M modified.rs │ - old line │
│ A new.rs │ + new line │
│ ?? untracked.txt │ ... │
└─────────────────────────────────────────────────┘
A - Added (staged)M - Modified (staged)D - Deleted (staged) M - Modified (unstaged) D - Deleted (unstaged)?? - UntrackedPotential features for future versions:
This project is available under the MIT license.