GiTerm - Git & GitHub Terminal User Interface
August 19, 2025 ยท View on GitHub
A powerful Git and GitHub Terminal User Interface (TUI) client written in Ruby using rcurses. Browse repositories, manage issues and pull requests, and perform Git operations - all from your terminal.
Key Features
๐ง Git Operations
- Status View (
s) - View git status with colored file indicators - Diff View (
d) - Show file diffs with syntax highlighting - Log View (
l) - Browse commit history with details - Branch Management (
b) - List, switch, and manage branches - Stage/Unstage (
a/u) - Stage or unstage files - Commit (
c) - Commit changes with message editor - Push/Pull (
p/P) - Sync with remote repositories - Repository Switching (
:cd) - Change to different git repositories
๐ GitHub Integration
- Repository Browser (
TAB) - Browse all your GitHub repositories with:- Color-coded organizations for visual distinction
- Star/fork/issue counts
- Language indicators
- README preview with delayed fetching
- File tree exploration
- Issues (
i) - View repository issues - Pull Requests (
pin GitHub mode) - View pull requests - Search (
/) - Search across repositories - Automatic repository detection from git remote
๐ฏ Enhanced Navigation
-
List Navigation
j/korโ/โ- Move up/downPgUp/PgDn- Page up/downg/GorHOME/END- Jump to top/bottom- Smooth wrapping at list boundaries
-
Right Pane Scrolling
Shift-โ/Shift-โ- Line down/upShift-โ/Shift-โ- Page down/up
-
General
TAB- Toggle between Git/GitHub modesh/โ- Go back/up one levell/โorENTER- Enter/view details?- Show context-sensitive helpr- Refresh current viewq- Quit
Command Mode
:- Enter git command mode!- Enter shell command mode
Screenshots
Git Repository Status View
Shows the enhanced status view with file changes and detailed diff information in the right pane:

Non-Git Directory Support
New in v1.1.0 - GiTerm now runs in non-git directories and offers GitHub integration:

GitHub Repositories Mode
Browse all your GitHub repositories with detailed information and README preview:

Help System
Comprehensive help showing all available keyboard shortcuts:

Requirements
- Ruby 2.7 or higher
- rcurses gem (will be installed automatically)
- Git installed and configured
- GitHub personal access token (for GitHub features)
Installation
Via RubyGems (Recommended)
gem install giterm
Manual Installation
# Clone the repository
git clone https://github.com/isene/GiTerm.git
cd GiTerm
# Make executable
chmod +x giterm
# Install dependencies
gem install rcurses
Usage
Run GiTerm from within any Git repository:
giterm
Or if installed manually:
./giterm
Interface Layout
The interface consists of four panes:
- Top Pane: Current repository, branch, and mode indicator
- Left Pane: List view (files, branches, repos, etc.)
- Right Pane: Detail view with scrollable content
- Bottom Pane: Command input and status messages
Performance Features
- Smart Fetching: Extended content (README, file lists) fetches after 0.5s pause
- Efficient Updates: Only changed content is redrawn
- Mode Memory: Remembers your position when switching between modes
Configuration
GitHub Token Setup
To enable GitHub features, set up a personal access token:
- Create a token at: https://github.com/settings/tokens
- Required scopes:
repo,read:user - Set the environment variable:
# Add to your shell profile (.bashrc, .zshrc, etc.)
export GITHUB_TOKEN=ghp_your_token_here
Custom Configuration
GiTerm looks for configuration in the following order:
- Environment variable
GITHUB_TOKEN - Git config:
git config --global giterm.token YOUR_TOKEN
Additional Commands
Command Mode (:):
:cd /path/to/repo- Change to a different git repository- Any git command - Executes in current repository
Shell Mode (!):
- Execute any shell command from within GiTerm
What's New
Version 1.1.0
- ๐ Non-Git Directory Support - GiTerm now runs outside git repositories!
- ๐ Enhanced Local Repository Info - Rich repository overview when working tree is clean
- ๐ง Smart Mode Switching - Seamless switching between local Git and GitHub modes
- ๐ฏ Improved User Experience - Better error handling and helpful guidance
- ๐ธ Updated Documentation - New screenshots showing all major features
Version 1.0.0
- ๐จ Organization color coding in GitHub mode
- ๐ Right pane scrolling with Shift+Arrow keys
- โก Smart delayed fetching for smooth navigation
- ๐ Mode-specific index memory
- ๐ Repository switching with
:cdcommand - ๐ Fixed display issues and improved performance
Design Philosophy
GiTerm follows these principles:
- Single file implementation - Easy to understand and modify
- Minimal dependencies - Only requires rcurses
- Fast and responsive - Optimized rendering and smart fetching
- Keyboard-driven - No mouse required
- Clean Ruby code - RuboCop compliant and well-documented
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create your feature branch
- Run RuboCop to ensure code style
- Submit a pull request
Author
Created by Geir Isene (@isene)
License
Public Domain - Use freely for any purpose.