Key reference

Every command Heed has, with its default keys. Keys in parentheses apply in that mode or view only. Any command can also be run by name on the command line (:), and any key changed in config.toml; see Customizing keys.

This page is generated from the code (mise run shots).

Command Keys Does
row.next j, <Down>, j (VISUAL) next session / row
row.prev k, <Up>, k (VISUAL) previous session / row
row.first gg, gg (VISUAL) first session / row
row.last G, G (VISUAL) last session / row
row.halfpage.down <C-d> half a page down (ten rows)
row.halfpage.up <C-u> half a page up (ten rows)
group.next } first row of the next group (sidebar group, repo)
group.prev { first row of this group, or of the one before
session.filter / filter the current view (typed in the status bar)
filter.clear clear the current view's filter
session.attention ga next session needing you
session.park zz park session
session.close x close session, keep worktree
session.delete dd (sessions) delete session and its worktrees (asks first)
session.import [path] Iw (sessions) import a worktree Heed does not manage yet as a session
session.import.path Ip (sessions) import the worktree at a path (any repo, anywhere)
session.pin m pin / unpin session
session.back '' back to previous session
session.open <words> go to the session matching these words
pin.jump <1-9> '1, '2, '3, '4, '5, '6, '7, '8, '9 jump to pinned session
work.start o start work
work.start.panel start work in the floating panel, as the global shortcut does
resume pick up where you left off: the sessions to resume, as on launch
work.again O start work from this session's prompt
view.history gh history
Command Keys Does
pane.left h, <C-w>h focus pane left
pane.right l, <C-w>l focus pane right
pane.up <C-w>k focus pane above
pane.down <C-w>j focus pane below
pane.split.right <C-w>v split right
pane.split.below <C-w>s split below
pane.zoom <C-w>z zoom pane
pane.close <C-w>q close pane
tab.next gt next tab
tab.prev gT previous tab
tab.new gn new tab with shell
tab.go <n> go to tab n
Command Keys Does
view <sessions|inbox|issues|prs|repos|history> switch view
view.sessions gs sessions
view.inbox gm inbox
view.issues gi issues
view.prs gp pull requests
view.repos gr repos & worktrees
overlay.pr PR overlay for this session (toggle)
overlay.item go open the PR or issue under the cursor; in Sessions, the session's PR (toggle)
overlay.diff gd diff overlay: commits, staged, unstaged
overlay.help ?, <D-/>, ? (VISUAL), <D-/> (VISUAL), <D-/> (INSERT), <D-/> (COMMAND) keys & states
overlay.close <Esc>, <Esc> (diff), <Esc> (issue), <Esc> (pr) close overlay
pr.next ]p next PR of this session
pr.prev [p previous PR of this session
pr.session gS jump from a PR to its session
pr.track <url> gU track a PR by URL
jump.back <C-o> back
open.browser gB open in browser
open.reader <CR> read inbox item, issue or PR
cleanup.rules show the cleanup rules (Repos, with its rules panel)
cleanup.sweep gC run the cleanup sweep now
inspector.toggle zi collapse / expand the inspector
sidebar.toggle zs collapse / expand the sessions sidebar
config.edit open config.toml in $EDITOR
tutor [lesson] <D-T>, <D-T> (INSERT) the tutor: pick a lesson, or start one by name (tour, sessions, prs…)
tutor.back the tutor's previous step, the world as it was then
tutor.skip skip the tutor's step
tutor.exit <D-.>, <D-.> (INSERT) leave the tutor; your sessions come back as they were
tools.detect find git and gh again (login shell PATH, usual places, [tools])
app.quit quit Heed
settings.open [section] <D-,> open Settings, on a section (general, agents, colors, cleanup, keys)
app.activate bring Heed's window to the front, as the global shortcut does
welcome show the getting-started checks again
Command Keys Does
mode.normal <Esc> (VISUAL), <C-\\> (INSERT), <S-Esc> (INSERT), <Esc> (COMMAND) back to NORMAL
mode.insert i INSERT into the focused pane
mode.visual v, V VISUAL: select, then act
mode.command : COMMAND line
mode.hint f HINT: jump to anything
hint.insert F jump and enter INSERT
command.submit <CR> (COMMAND) run the command line
command.complete <Tab> (COMMAND) complete
Command Keys Does
select.toggle <Space> (VISUAL), <Space> (inbox), <Space> (issues) toggle row
history.reopen R (history) reopen: resume, recreating the worktree if needed
history.again O (history) start a new session from this prompt
history.outcome t (history) cycle the outcome filter
github.sync r (inbox), r (issues), r (pr), r (prs) sync GitHub now
items.start s (inbox), s (issue), s (issues) start one session from the picked items
items.add a (inbox), a (issue), a (issues) add the picked items to the current session
items.read x (inbox) mark read
items.filter t (inbox), t (issues) cycle the filter chips
issues.repo.next <Tab> (issues) next repo in the Issues repo column
issues.repo.prev <S-Tab> (issues) previous repo in the Issues repo column
issues.repo [name] show one repo's issues (no name: every repo)
issues.visibility w (issues), w (repos) flip the repo under the cursor between all issues and only yours
feedback.queue <Space> (pr) queue / unqueue the item
feedback.send s (pr) send queued feedback to the session
feedback.mode m (pr) cycle auto-feed: off, ask, auto when idle
feedback.watch w (pr) pause / resume watching
feedback.dismiss x (pr) dismiss the item
feedback.session S (pr) start a new session from this PR
diff.hunk.next n (diff) next hunk
diff.hunk.prev N (diff) previous hunk
diff.file.next ]f (diff) next file
diff.file.prev [f (diff) previous file
diff.scope.next <Tab> (diff) next scope: all, committed, staged, unstaged
diff.scope.prev <S-Tab> (diff) previous scope
diff.commit c (diff) show one commit (cycles)
diff.split t (diff) unified / split
diff.ask a (diff) ask the agent about this hunk
diff.copy y (diff) copy path:line
diff.edit e (diff) open the file in the editor
repo.add <path> add a repo outside the scanned roots (kept in repo_paths)
repo.scan r (repos) refresh: rescan the repo roots
worktree.new o (repos) start work in the repo under the cursor
select.remove d (VISUAL), dd (repos) remove the selected worktrees, or the one under the cursor (asks first)
select.pin m (VISUAL) pin selected
select.copy y (VISUAL) copy paths
select.open o (VISUAL), <CR> (repos) open the worktree's session, importing it when it has none