Skip to main content

A blazing-fast TUI replacement for GitKraken - manage your Git repos with style!

Project description

OctoTUI Logo

๐Ÿ™ OctoTUI

PyPI version Python License: MIT Code style: ruff PRs Welcome

A Textual TUI For GitKraken Lovers

Installation โ€ข AI Commits โ€ข Keybindings


๐Ÿš€ OctoTUI

octotui.png

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

  1. Review Changes: See your diffs in beautiful color
  2. Stage Hunks: Click or use s to stage individual changes
  3. Generate Commit: Press g for AI-powered message (optional)
  4. Commit: Press c to commit with your message
  5. Push: Press p to 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

  1. Press Ctrl+G in OctoTUI
  2. Choose your provider (we recommend Cerebras for free tier)
  3. Select your model
  4. Paste your API key
  5. 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 check with 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

  • Built with โค๏ธ using Textual
  • AI commits powered by GAC

๐Ÿ’ฌ Community


๐ŸŒŸ If you like OctoTUI, give us a star! ๐ŸŒŸ

โฌ† Back to Top

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

octotui-0.1.5.tar.gz (29.9 kB view details)

Uploaded Source

Built Distribution

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

octotui-0.1.5-py3-none-any.whl (36.2 kB view details)

Uploaded Python 3

File details

Details for the file octotui-0.1.5.tar.gz.

File metadata

  • Download URL: octotui-0.1.5.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

Hashes for octotui-0.1.5.tar.gz
Algorithm Hash digest
SHA256 e94fb417ad9126fa6781a531eec7d2db7f4b9fb66d89cdec77fee62ad20340e2
MD5 611cce21a52afe0ea662cb255e11f438
BLAKE2b-256 306a1e32b574b0b8050a98d9fd123284f8fddb01468b14911454e628c8627ea9

See more details on using hashes here.

File details

Details for the file octotui-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: octotui-0.1.5-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

Hashes for octotui-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 644b5c2b8ec726b85d51c2f1e009ff930508ec796d61fbec4ff7c8e443cef62b
MD5 6d7c03883237ad6740723d4de771897e
BLAKE2b-256 33ceb33e09a358ff2bae4afee3c5d5eea7d7a97d684adbd31e6fd92798561894

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