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.
- 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
- 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
-
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
:- Enter git command mode!- Enter shell command mode
Shows the enhanced status view with file changes and detailed diff information in the right pane:
New in v1.1.0 - GiTerm now runs in non-git directories and offers GitHub integration:
Browse all your GitHub repositories with detailed information and README preview:
Comprehensive help showing all available keyboard shortcuts:
- Ruby 2.7 or higher
- rcurses gem (will be installed automatically)
- Git installed and configured
- GitHub personal access token (for GitHub features)
gem install giterm# Clone the repository
git clone https://github.com/isene/GiTerm.git
cd GiTerm
# Make executable
chmod +x giterm
# Install dependencies
gem install rcursesRun GiTerm from within any Git repository:
gitermOr if installed manually:
./gitermThe 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
- 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
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_hereGiTerm looks for configuration in the following order:
- Environment variable
GITHUB_TOKEN - Git config:
git config --global giterm.token YOUR_TOKEN
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
- π 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
- π¨ 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
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
Contributions are welcome! Please:
- Fork the repository
- Create your feature branch
- Run RuboCop to ensure code style
- Submit a pull request
Created by Geir Isene (@isene)
Public Domain - Use freely for any purpose.



