Skip to content

Basic usage

Run gitoui from inside any git repository:

Terminal window
cd ~/my/repo
gitoui

You land on the commit list, your home screen. The commit graph is on the left, then commit message, author, hash, and date. Use arrows or j/k to move. Each shortcut shown below is reconfigurable, see the Keybindings page.

gitoui commit list home, graph column on the left, branches diverging, cursor row highlighted

These five shortcuts cover 95% of navigation, learn them first.

PressGoes to
EnterCommit detail (or Uncommitted on the top row).
TabRefs panel (branches, tags, stashes, remotes).
fSearch, fuzzy by default, toggle case (s) / fuzzy (z) / regex (x) inline.
? or F1Help, the live reference of every shortcut, computed from your config.
pConfiguration, themes, modes, GitHub auth, live cycling with ← / →.

Hit Esc (or q in the list view) to back out of any view.

  1. Cursor on the commit, press EnterCommit Detail opens.
  2. Right panel lists every action (Add Tag, Blame, Checkout, Cherry Pick, Revert, Drop, Merge, Rebase, Reset, Squash, Amend…). Left panel shows author, date, hash, refs, message, and the file-change summary.
  3. Enter on a file in that summary → Diff view (side-by-side mode configurable via core.option.diff_mode).
  4. + / - cycle to the next / previous file in the commit.

From the commit list, Enter on the top row (Uncommitted Changes) opens the Uncommitted view: Unstaged, Staged, and Untracked panels side by side.

PressAction
aStage the focused file (or open the 3-way conflict editor when the file is in conflict).
uUnstage from the Staged section.
xDiscard an unstaged change.
wOpen the commit message editor.
iStash everything.

Space on a commit marks it. Move to a second commit and press Space again, gitoui opens the cumulative diff between the two endpoints. Esc clears the mark.

e on a non-HEAD commit opens the rebase plan editor. Use the per-row shortcuts (p pick, r reword, e edit, s squash, f fixup, d drop) to set actions, Space to grab and reorder rows with arrows, Enter to apply. If the rebase pauses (conflict, edit), gitoui detects it on the next open and shows a resume banner with c continue / s skip / a abort.

Interactive rebase pass, plan editor, grab row, reorder, reword inline, apply

Shift+R (anywhere) opens the PR list. Enter drills into a PR, the Conversation / Files / Commits / References tabs work like GitHub’s web UI. a approve, m merge, c new comment, + react, Shift+R quote-reply.

Same flow for Issues with Shift+I.

PR detail, Conversation tab, author avatar, label chips, focused comment card with action ribbon

  • Directory~/.config/gitoui/
    • config.toml main config, schema reference
    • Directorythemes/
    • github_token.toml OAuth token (mode 0600, user-only)
  • Directory~/.cache/gitoui/
    • Directoryavatars/ cached GitHub avatar PNGs

Override the config path with GITOUI_CONFIG_FILE=.... Move the whole folder with XDG_CONFIG_HOME=... (POSIX-standard).