Skip to content

Navigation - Keyboard Shortcuts, Tabs & Command Palette

lazyaz uses a miller-columns layout — parent, focused, and child panes arranged left to right. As you drill into resources, the focused pane shifts right and the previous pane becomes the parent column on the left.

KeyAction
Tab / Shift+TabCycle pane focus
Enter / l / RightOpen / drill in
h / LeftGo back
BackspaceParent folder (blobs pane, hierarchy mode), otherwise go back one pane
/Filter focused pane
Ctrl+D / Ctrl+U / PgDown / PgUpHalf-page scroll
aAction menu
KInspect panel
SSwitch subscription
dReload subscriptions
rRefresh current scope
TTheme picker
NNotifications history
FActivity overlay
? / F1Help
q / Ctrl+CQuit (q is suppressed while a filter or text-input is focused; Ctrl+C always works)

The Notifications history (N) overlay keeps the last 1 000 events. Transient toasts auto-dismiss after ~1.5 s (or 5 s for errors). Errors from background fetches land here too — including fetches in tabs you’re not currently looking at — so a failed refresh is never silently lost. The list truncates each event to one line; the pane under it shows the selected event in full, word-wrapped, so a long Azure error is readable. Press y to copy the selected event’s complete text to the clipboard. The Activity overlay (F) shows in-flight cache fetches across all tabs and lets you cancel them mid-flight — note that some long-running operations (Service Bus requeue/move) are not yet routed through it.

Run Blob Storage, Service Bus, and Key Vault side by side. Each tab has its own subscription context.

KeyAction
Ctrl+TNew tab
Ctrl+WClose tab
LNext tab
HPrevious tab
1–9Jump to tab
Ctrl+PCommand palette

Every filter in the app — pane filters (/), overlay pickers, the command palette, the file browser — uses fzf’s matching algorithm and understands fzf’s extended-search syntax. Matching is case-insensitive.

PatternMatches
logsfuzzy match
'logsexact substring
^dataprefix
.json$suffix
^app$exact equal
!tmpdoes not contain tmp (also !^data, !.tmp$)
^data .json$AND — all space-separated terms must match
'parquet | 'avroOR — pipe joins alternatives

Use \ (backslash-space) to match a literal space. Note: the Blob tab’s server prefix search sends a literal prefix to the Azure API and does not use this syntax.

Filters match the visible row text. One exception: the Service Bus messages pane also matches the message body preview, so you can find a message by its content.

Press a to open a context-aware action menu for the current pane. The menu shows only actions relevant to your current selection — download, yank, sort, requeue, and more depending on the resource type. Type to filter, Enter to execute.

Press Ctrl+P to open the command palette. It lists every available command grouped by section — new tabs (Blob / Service Bus / Key Vault / Dashboard / Azurite preset / Blob-by-connection-string), open tabs (Go to Tab N), tab management (close / next / previous), the Azure Login / Switch Tenant flow, theme picker, notifications history, activity overlay, help, and quit. Type to fuzzy-filter, Enter to execute.

Note: switching subscription is not in the palette — it’s the top-level shortcut S (or Ctrl+S in standard).

lazyaz keeps a vim-style jump list that tracks where you’ve been across tabs, following vim’s rules: a jump is a scope change — drilling into a different container, folder, vault, kind, namespace, or queue, switching subscription, or jumping between tabs. Local motion (cursor moves, pane focus changes, scrolling) is never recorded. The position you were at when you jumped is what gets recorded, down to the folder and the selected row, so Ctrl+O puts the cursor back exactly where you left.

KeyAction
Ctrl+OJump back to the previous position
Ctrl+I / Ctrl+N / Ctrl+]Jump forward

Jumps cross tab boundaries — pressing Ctrl+O can return you to a different tab you had open (including the dashboard, which restores the focused widget). Making a new jump while walked back abandons the forward history, exactly like vim. The list holds up to 100 entries and is deduplicated so rapid back-and-forth doesn’t bloat it.

Some terminal + multiplexer combinations can’t distinguish Ctrl+I from Tab, which is why Ctrl+N and Ctrl+] are also bound to jump forward.