Skip to content

Keyboard shortcuts

All shortcuts are active in the interactive TUI. Keys are case-sensitive — most use lowercase letters, but a few bindings (such as Z and G) require an uppercase letter.

KeyAction
/ kMove cursor up (repos and extracts)
/ jMove cursor down (repos and extracts)
Fold the repo under the cursor
Unfold the repo under the cursor
ZGlobal fold / unfold — fold all repos if any is unfolded; unfold all if all are folded
ggJump to the top (first result)
GJump to the bottom (last result)
Page Up / Ctrl+UScroll up one full page
Page Down / Ctrl+DScroll down one full page

Section header rows (shown when --group-by-team-prefix is active) are skipped automatically during navigation.

Selection

KeyAction
SpaceToggle selection on the current repo or extract. On a repo row: cascades to all its extracts.
aSelect all. On a repo row: selects all repos and their extracts. On an extract row: selects all extracts in the current repo. Respects active filters.
nSelect none. Same context rules as a. Respects active filters.
oOpen in browser — opens the focused item in the default browser. On a repo row: opens the repository page. On an extract row: opens the file directly.

Filtering

KeyAction
fOpen the filter bar and enter filter mode
tCycle the filter target: pathcontentrepopath. Only works outside filter mode and when not on a picked repo (see Team ownership below).
rReset the active filter and return to showing all repos / extracts

Filter targets

TargetWhat is matchedShown / hidden unit
pathFile path substring (default). Case-insensitive.Individual extracts
contentCode fragment text (the snippet returned by GitHub Search). Case-insensitive.Individual extracts
repoRepository full name (org/repo). Case-insensitive.Entire repo + extracts

The active target is always shown in the filter bar badge: [path], [content], or [repo] (with ·regex appended when regex mode is on).

Filter mode bindings

When the filter bar is open (after pressing f):

KeyAction
Printable characters / pasteInsert character(s) at the cursor position
/ Move the text cursor one character left / right
⌥← / ⌥→ (macOS) · Ctrl+← / Ctrl+→ · Alt+b / Alt+fJump one word left / right
BackspaceDelete the character before the cursor
⌥⌫ (macOS) · Ctrl+WDelete the word before the cursor
TabToggle regex mode (badge shows […·regex] when on)
Shift+TabCycle the filter target (pathcontentrepopath)
EnterConfirm the filter and apply it
EscCancel without applying the filter

TIP

Invalid regex patterns do not crash the TUI but are treated as matching nothing (zero visible rows). The badge is always yellow when regex mode is active, regardless of whether the pattern is valid.

Team ownership

Available only when --group-by-team-prefix is active.

KeyAction
pOn a multi-team section header: enter team pick mode to assign the section to a single owner. Does nothing on single-team section headers.
tOn a picked repo (marked , moved by a previous pick): enter re-pick mode to change its team assignment or restore it to the combined section.

Pick mode bindings

When pick mode is active (after pressing p on a multi-team section header):

KeyAction
/ Move focus between candidate teams (highlighted / dimmed)
EnterConfirm the pick and exit pick mode
EscCancel and exit pick mode without changes

Re-pick mode bindings

When re-pick mode is active (after pressing t on a picked repo marked ):

KeyAction
/ Cycle through candidate teams (from the original combined section label)
EnterConfirm and move the repo to the focused candidate team
0 / uUndo the entire section pick — restore all repos from that combined section to their original label
Esc / tExit re-pick mode without changes

Help and exit

KeyAction
h / ?Toggle the help overlay (shows all key bindings)
EnterWhen help overlay is closed: confirm and print selected results. When open: close the overlay.
q / Ctrl+CQuit without printing results

Mouse support

The interactive TUI supports mouse interaction via the terminal's SGR (Select-Graphic-Rendition) mouse protocol, enabling click-based navigation and selection alongside keyboard shortcuts.

Scroll wheel

ActionEffect
Scroll up / down wheelScroll the viewport up or down by 3 rows
Scroll during momentumClicks are ignored during trackpad momentum scrolling

During trackpad momentum scrolling (macOS, Linux), the TUI enters a brief "scroll cooldown" period to ignore accidental clicks while the scroll is still decelerating. This prevents unintended selections.

Click actions

ActionEffect
Single-click on row (anywhere)Move the cursor to that row (navigation)
Double-click on rowPerform the double-click action for that row type (see below)
Double-click on fold icon (▸/▾, repo rows)Toggle repo fold state (show/hide extracts)
Double-click on checkbox or row content (repos)Toggle the repo's selection state (cascades to all extracts)
Double-click on checkbox or row content (extracts)Toggle that extract's selection state

Click zones

The TUI divides each row into interactive zones:

Repo rows ("▸ ✓ repo-name"):

ZoneColumnsAction on double-click
Fold control1–2Toggle fold (show/hide extracts)
Checkbox zone4+Toggle repo selection (full-width double)
Navigation3Single-click only (move cursor)

Extract rows (" ✓ path:line:col"):

ZoneColumnsAction on double-click
Indent1–3Single-click only (move cursor)
Checkbox zone4+Toggle extract selection (full-width)

Note: All double-click actions are mapped to the row type (repo or extract) and the click column. Clicking anywhere from column 4 onwards (checkbox start) triggers a selection action; clicking on columns 1–3 only triggers navigation or fold (repo rows only).

Relationship with keyboard

Mouse and keyboard shortcuts are fully complementary:

  • Selection: Mouse double-click on checkbox = Spacebar Space
  • Navigation: Mouse single-click = Arrow keys /
  • Fold control: Mouse double-click on fold icon = Arrow keys /
  • Select all / Select none: Keyboard a / n (no mouse equivalent)

Released under the MIT License.

Released under the MIT License.· Copyright © 2026 fulll