# Keymap cheatsheet
Every key the cockpit handles, in one place. The in-app `?`
overlay is the canonical source — this page mirrors it for
offline reference.
## Global (works everywhere)
| `Tab` | Next screen |
| `Shift+Tab` | Previous screen |
| `[` / `]` | Previous / next tab on the bottom log pane (Errors / Warn / Info / Debug / Bee HTTP / bee::http). Persisted across launches. |
| `+` / `-` | Grow / shrink the bottom log pane height by one line. Clamped to 4..24. Persisted across launches. |
| `Shift+↑` / `Shift+↓` | Scroll the active log tab back / forward by one line. Pauses auto-tail; the title shows a `paused N ↑` indicator. |
| `Shift+PgUp` / `Shift+PgDn` | Same, ten lines at a time. |
| `Shift+End` | Resume auto-tail (snap back to the latest entries). |
| `?` | Toggle help overlay |
| `:` | Open command bar |
| `qq` | Quit — double-tap within ~1.5 s. First `q` shows a footer hint; second `q` confirms. `:q` also works for an unguarded quit. |
| `Ctrl+C` / `Ctrl+D` | Quit immediately. Escape hatch if the cockpit ever stops responding to `qq`. |
| `Esc` | Close help / drill / command bar / cancel current input. Also cancels a pending `q` (so you can back out without committing). |
## Screen-specific keys
S1 / S3 / S5 / S7 / S8 are read-only — they have no
screen-specific keys.
### S2 — Stamps + bucket drill
| `↑↓` / `j k` | Move row selection |
| `↵` | Drill into selected batch (bucket histogram + worst-N) |
| `Esc` | Close drill |
### S4 — Lottery + rchash
| `r` | Fire / re-fire rchash benchmark |
### S6 — Peers + bin saturation + drill
| `↑↓` / `j k` | Move cursor in peer table |
| `PgUp` / `PgDn` | Page through peers |
| `Home` | Jump to first peer |
| `↵` | Drill into selected peer (4 endpoints in parallel) |
| `Esc` | Close drill |
### S9 — Tags / uploads
| `↑↓` / `j k` | Scroll one row |
| `PgUp` / `PgDn` | Scroll ten rows |
| `Home` | Back to top |
## The command bar
`:` opens it. Once open:
| `↵` | Run the typed command |
| `Esc` | Close without running |
| `Backspace` | Delete left |
| any printable | Append to command buffer |
See [The `:command` bar](../commands/bar.md) for what each
command does.
## Conventions
- The cockpit prefers **vim-style** keys (`j`/`k`,
`:command`, `Esc`-to-close) but every nav key has an
arrow-key + named-key alias. You don't have to know vim.
- **No `Ctrl+` chords** for normal navigation. The cockpit
reserves Ctrl-keys for terminal escape sequences (Ctrl+C
exits via SIGINT, etc.). All screen actions are single
keystrokes.
- **`Esc` is universal close.** Whatever's most-recently
opened — drill / help / command bar — is what `Esc`
closes. The hierarchy is: command bar > help overlay >
drill > nothing.
## Why `qq` instead of just `q`
A bee-tui session is something operators leave running in the
background while doing other work. A single `q` was found to
be too easy to misclick — especially when navigating in from
another shell. The double-tap guard means a stray keystroke
costs you a footer hint, not a session.
If you really want unguarded quit, use `:q` from the command
bar. `Ctrl+C` and `Ctrl+D` are also unguarded — they remain
the canonical "I want out *now*" escape hatches and bypass
the double-tap entirely.
## Discovering keys
Open `?` on any screen. The overlay shows the global keymap
*plus* the keys for the current screen. So pressing `?` on
S6 lists peer-drill keys; pressing `?` on S9 lists scroll
keys. No memorisation needed.
## What's not bound
The cockpit deliberately leaves these unbound:
- **Up/down arrow for screen jump** — `Tab` is the only
screen-jump key. Arrow keys are reserved for in-screen
navigation.
- **Number keys for screen jump** — would conflict with
future selection / drill operations.
- **`/` for search** — there's no global text search yet.
Most screens are too short to need one, and where they
aren't (S6 peers, S9 tags), you can scroll with
`j`/`k`/`PgDn`/`Home`.