Skip to content

Keybindings & Commands

ichi is modal and keyboard-first. Most keys are contextual — the same letter does the sensible thing for the view you’re in — but a handful are global.

These work from (almost) anywhere:

KeyAction
gReturn to the commit graph (home)
sOpen Status
bOpen Branches
SOpen Stashes
pOpen Pull Requests
:Open the command line
Ctrl+P / Ctrl+KOpen the command palette
TTheme selector
?Help for the current view
EscGo back / close
qQuit (from the graph)

Movement keys are consistent across every list and view:

KeyAction
j / Down
k / Up
g / GTop / bottom
/Search within the view
EnterSelect / open details
TabSwitch panel or focus
KeyAction
EnterCommit details
dDiff for the selected commit
cCheck out the selected commit
yCopy the commit hash
KeyAction
SpaceStage / unstage file
a / uStage all / unstage all
cCommit
dDiff selected file
TabSwitch between staged / unstaged

In the diff view:

KeyAction
j / kMove by line
J / KMove by hunk
SpaceSelect a line
sStage the current hunk
EnterStage selected lines
uUnstage
KeyAction
cCheck out branch
bNew branch
dDiff
/Search branches

Press : to enter a Git command. The available commands:

CommandAction
:pushPush to remote
:pullPull from remote
:fetchFetch from all remotes
:merge <ref>Merge the selected branch
:rebase <ref>Rebase onto the selected branch
:checkout <ref>Check out a branch or commit
:diffShow diff for the selected commit
:pickCherry-pick the selected commit
:revertRevert the selected commit
:resetReset to the selected commit (soft)
:dropDrop the selected commit or stash
:applyApply the selected stash
:popPop the selected stash
:blameLine-by-line attribution for a file
:logShow commits for a file
:wStage all changes
:wqOpen the commit dialog and quit
:qQuit

The command palette (Ctrl+P) fuzzy-finds the same actions if you’d rather search than type.