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

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.2.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.2-py3-none-any.whl (36.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: octotui-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 a1fab2f59497c5eda2a771fea29548d3e94648137dba22d7abba6fda8f59d7be
MD5 703425ee1cb88a090db2241c91ec9d28
BLAKE2b-256 e73defdedbfa338b65de143e152d5ba830597b5e1e85f99b1d8e7c98275bd7e3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: octotui-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 643b49b9b94868e4a565e6187817dd1dfd62cb28401dfd7530258b02d9422653
MD5 5a2828c67035109f1b052ba6be4a01fe
BLAKE2b-256 3afda607d1a8b812bac8771858d80e1f7f247c7228f4b6bae6a801a13289e7ce

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