A blazing-fast TUI replacement for GitKraken - manage your Git repos with style!
Project description
๐ OctoTUI
We love GitKraken so much, we wanted to bring that beautiful experience to the terminal!
GitKraken is amazing - it's gorgeous, intuitive, and makes Git feel approachable. But as terminal enthusiasts, we found ourselves constantly context-switching between our editor and GitKraken. We wanted that same delightful experience without ever leaving the command line.
OctoTUI is our love letter to both GitKraken and the terminal.
๐ What We Kept from GitKraken
- โ Beautiful, intuitive visual diffs
- โ Hunk-level staging control
- โ Branch visualization and management
- โ Commit history browsing
๐ฏ What We Added for Terminal Lovers
- ๐ค AI-powered commit messages (via GAC)
- ๐ 100% free and open source
- ๐ Never leave your terminal flow
๐ฆ Installation
Quick Start (Recommended)
# Using uvx (isolated, recommended)
uvx octotui
From Source (For Contributors)
git clone https://github.com/never-use-gui/octotui.git
cd octotui
uv run octotui
System Requirements
- ๐ Python 3.11+
- ๐ง Git
- ๐ป Any terminal with 256+ colors
First-Time Workflow
- Review Changes: See your diffs in beautiful color
- Stage Hunks: Click or use
sto stage individual changes - Generate Commit: Press
gfor AI-powered message (optional) - Commit: Press
cto commit with your message - Push: Press
pto push to remote
Pro tip: Press h anytime to see all available keybindings! ๐
๐ค AI-Powered Commits
Setup (Optional but Awesome)
# Install GAC (Git Auto Commit)
uv pip install 'gac>=0.18.0'
Configuration
- Press
Ctrl+Gin OctoTUI - Choose your provider (we recommend Cerebras for free tier)
- Select your model
- Paste your API key
- Save & enjoy AI commit messages!
โจ๏ธ Keybindings
๐ Navigation
| Key | Action |
|---|---|
โ/โ |
Navigate files/hunks |
Enter |
Select file |
Tab / Shift+Tab |
Cycle through UI elements |
1 / Ctrl+1 |
Switch to Unstaged tab |
2 / Ctrl+2 |
Switch to Staged tab |
๐ Git Operations
| Key | Action |
|---|---|
s |
Stage selected file |
u |
Unstage selected file |
a |
Stage ALL unstaged changes |
x |
Unstage ALL staged changes |
c |
Commit staged changes |
๐ฟ Branch & Remote
| Key | Action |
|---|---|
b |
Switch branch |
r |
Refresh status |
p |
Push to remote |
o |
Pull from remote |
๐ค AI Features
| Key | Action |
|---|---|
g |
Generate AI commit message |
Ctrl+G |
Configure GAC settings |
โ๏ธ Application
| Key | Action |
|---|---|
h |
Show help modal |
q |
Quit application |
Ctrl+D |
Toggle dark mode |
๐จ Git Status Colors
| Color | Meaning |
|---|---|
| ๐ข Green | Staged files (ready to commit) |
| ๐ก Yellow | Modified files (unstaged) |
| ๐ต Blue | Directories |
| ๐ฃ Purple | Untracked files |
| ๐ด Red | Deleted files |
Code Quality Standards
- โ Follow the Zen of Python
- โ DRY (Don't Repeat Yourself)
- โ YAGNI (You Aren't Gonna Need It)
- โ SOLID principles
- โ Keep files under 600 lines
- โ Write tests for new features
- โ
Pass
ruff checkwith zero errors
๐ Tech Stack
- Textual: Modern TUI framework
- GitPython: Git operations
- GAC: AI commit generation
- Ruff: Lightning-fast Python linter
๐ License
MIT License - see LICENSE for details
๐ Acknowledgments
๐ฌ Community
- ๐ Issues: GitHub Issues
๐ If you like OctoTUI, give us a star! ๐
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 octotui-0.1.3.tar.gz.
File metadata
- Download URL: octotui-0.1.3.tar.gz
- Upload date:
- Size: 29.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb229eb9ad61d3c52eb72d6b30c5d49b924a330fa5d72a0b57dbc63bb25e3304
|
|
| MD5 |
c52c71519ac1fcb62fe92b8a14b94ca2
|
|
| BLAKE2b-256 |
8e278a4fdb4e245f83b9c2cb582c8b9a7e0e94eab04e6b8df3c02771bc9c9a6f
|
File details
Details for the file octotui-0.1.3-py3-none-any.whl.
File metadata
- Download URL: octotui-0.1.3-py3-none-any.whl
- Upload date:
- Size: 36.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5707179e42b65bcc9708c2a3b9343e0d2fb9a479d750c1e7fba5706a67bfc03f
|
|
| MD5 |
fe3df65fd3d4b9b9511d6b2c3bdabe0a
|
|
| BLAKE2b-256 |
912d233b81a54adafc55e6a7a96c350ed8ef8a4749124ca0912899d9fac5edc4
|