Open source · Go · single binary

Your whole Git history,
on one screen.

gitpad is a terminal UI for Git: a branch tree, a colored commit graph, changed files and commit details side by side — with context menus for checkout, merge, rebase, cherry-pick and reset, a commit workspace and a push dialog.

$brew tap jinhyo-dev/gitpad https://github.com/jinhyo-dev/gitpad && brew install --cask gitpad

Try it right here

This is a faithful re-creation of gitpad running in your browser on a fictional repository. Click it, then use the keys — it behaves like the real thing.

○ Click to start
gitpadacme-platformonmain→ origin/main2LogConsole?help
Search message, author or hashBranch: All
Branches
main↑2
Local3
main↑2
develop
staging
Remote3
origin3
main
feat/dark-mode
staging
Tags1
v1.4.0
Log 60
Uncommitted changes · 4 files
Alice Park8/21 09:24 feat(api): MeloTTS-style streaming synthesis proxy (/api/v2/tts)HEADmain
Alice Park8/21 04:43 fix(api): MANAGER role may read contents and widgets
Ben Cho8/21 01:10 Merge pull request #341 from acme/feat/search-suggestorigin/main
Daniel Ruiz8/20 19:47 feat(search): 검색 자동완성 캐시 적용
Alice Park8/20 16:26 fix(api): off-by-one in cursor pagination
Daniel Ruiz8/20 13:48 perf(api): cache organization lookups for 60s
Chloe Nguyen8/20 11:19 refactor(api): 컨트롤러 인가 애노테이션 정리
Daniel Ruiz8/20 06:59 test(web): cover ProfileCard empty states
Ben Cho8/20 04:18 Merge pull request #340 from acme/feat/dark-modev1.4.0
Eunji Lee8/20 03:47 feat(web): 다크 모드 토글 및 시스템 테마 감지origin/feat/dark-mode
Ben Cho8/20 02:21 chore(deps): bump kotlin to 2.1.20
Eunji Lee8/20 00:49 feat(web): keyboard shortcuts for the data table
Chloe Nguyen8/19 23:32 fix(billing): 환불 금액 반올림 오류 수정develop
Ben Cho8/19 18:32 Merge pull request #339 from acme/fix/refund-rounding
Chloe Nguyen8/19 14:26 fix(billing): 환불 금액 반올림 오류 수정 (side)
Alice Park8/19 09:02 docs: 온보딩 가이드 업데이트
Eunji Lee8/19 07:00 build: enable gradle configuration cachestagingorigin/staging
Chloe Nguyen8/19 06:20 perf(web): lazy-load the settings routes
Eunji Lee8/19 04:18 chore: 배포 스크립트 정리
Ben Cho8/19 00:44 fix(search): 한글 초성 검색 시 결과 누락
Ben Cho8/18 21:59 fix(api): N+1 query when listing organizations
Local Changes 4
[x] M SearchService.kt api/src/main/kotlin/com/acme/api
[x] M DataTable.tsx web/src/components
[ ] ? 0007-search-v2.md docs/adr
[ ] ? .env.local
Details
Uncommitted changes
2 changed · 2 untracked
c commit… P push… enter diff
enter actionsc commitP pushp pullf fetchv version tag/ searchA all/heady copy hash←→ sectionq exit1/61
Click to start
then drive it with your keyboard — arrows, enter, /, c, P…
↑ ↓ / j k move1 2 3 / tab switch paneenter actions / open/ searchc commitP pushesc back

A Git TUI built around the log

gitpad is a terminal user interface (TUI) for Git. Instead of stitching together git log, git branch and git diff, you get the commit graph, the branch tree, the changed files and the commit details on one screen — the way a desktop Git client shows them, inside the terminal you already work in.

It is a single Go binary that drives your own git, so hooks, credential helpers and signing keys keep working. Repositories hosted on GitHub get check status next to every commit, and a commit workspace and push dialog cover the everyday GitHub workflow without leaving the keyboard.

Platforms
macOS · Linux · Windows
Install
Homebrew · apt · Scoop · go install
License
MIT, open source
Language
Go (bubbletea)

Everything the log view should have

Designed to look and feel like a desktop Git client — without leaving the terminal.

Commit graph

Lanes, merges and branch heads drawn per commit, with ref chips for HEAD, branches, remotes and tags.

Context menus

Right-click or press Enter on any commit or branch: checkout, merge, rebase, cherry-pick, revert, reset, new branch or tag.

Commit workspace

Check the files you want, write a multi-line message with history recall, preview the diff of each file, commit or commit & push.

Push dialog

See exactly which commits will be pushed, get warned when the branch is behind, toggle force-with-lease or tags.

CI status

✓ ✗ ◌ next to every commit from GitHub checks, with the individual runs and durations in the details pane.

Search & filters

One search box for messages, authors and hashes, a branch picker with type-to-filter, and a file-history filter.

Install in one line

Pre-built binaries for macOS, Linux and Windows. gitpad shells out to your own git, so hooks, credential helpers and signing keep working.

$ brew tap jinhyo-dev/gitpad https://github.com/jinhyo-dev/gitpad
$ brew install --cask gitpad

Then run gitpad inside any repository. All releases

Keyboard first

Every action is a keystroke; the mouse works too.

Navigation

tab · 1 2 3switch pane
j k ↑ ↓move
g / Gtop / bottom
← →fold / unfold, then previous / next pane
↑ at topjump to the search bar

Log

enter / m / right-clickcommit actions
/search message, author or hash
Aall branches ↔ current
ycopy hash
vnew version tag (patch / minor / major)

Commit & push

c / Ccommit workspace
entercheck / uncheck a file
⌃S · ⌃Pcommit · commit & push
Ppush dialog
ppull (merge / rebase / fetch)

Diff

enteropen diff
↑ ↓next / previous change block
n / pnext / previous file
escback