One buffer, one cursor
Status, log, diff and review are one scrolling buffer around three persistent bars — tabs, mode, hints — and the hint bar's chips are the keys that act on the row under the cursor. Sections with nothing in them are not drawn; a clean worktree says so.
┌────────────────────────────────────────────────────────────────────┐ │ hunkworks ⟨ myrepo ×⟩ ⟨ other-repo ×⟩ │ ├────────────────────────────────────────────────────────────────────┤ │ ● main 1 staged · 1 unstaged · 1 untracked [Status] │ ├────────────────────────────────────────────────────────────────────┤ │ ╭ Staged 1 ─────────────────────────────────────────────────────╮ │ │ ┃ [A] new.rs +9 │ │ │ ╰──────────────────────────────────────────────────────────────╯ │ │ ╭ Unstaged 1 ───────────────────────────────────────────────────╮ │ │ │ [M] src/lib.rs +1 −1 │ │ │ │ ╭ @@ -12,7 +12,7 @@ ─────────────────────────────────────╮ │ │ │ │ │ - old line │ │ │ │ │ │ + new line │ │ │ │ │ ╰──────────────────────────────────────────────────────────╯ │ │ ╰──────────────────────────────────────────────────────────────╯ │ │ ┌ Untracked 1 ──────────────────────────────────────────────────┐ │ │ │ [?] scratch.txt │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ Recent commits ──────────────────────────── l - full log │ │ a1b2c3d main fix: the thing you 2026-08-27 │ ├────────────────────────────────────────────────────────────────────┤ │ ON THIS FILE [s stage] [TAB expand] [K discard] │ └────────────────────────────────────────────────────────────────────┘