Skip to content
Current release v0.0.2Release notesGitHub

Keyboard

Key Action
↑ / ↓ Move the highlight. It stops at the first and last row.
Home / End Jump to the first or last row.
Page Up / Page Down Same as Home and End.
any character Add it to the filter.
Backspace Remove the last filter character.
Enter Run the highlighted task.
Esc Cancel. Nothing runs. Exit code 130.
Ctrl+C Same as Esc while the picker is open.

Anything else, such as mouse reports or bracketed-paste markers, is swallowed whole and does not end up in the filter.

The filter is a case-insensitive substring match over both the task name and its command. Typing te matches test by name and anything whose command contains te.

Filtering to the test task

The title line shows the active filter. If nothing matches, the list says so and Enter does nothing.

Case is folded for ASCII only. étape will not find ÉTAPE, though ÉTAPE does find étape. This is a deliberate size trade, covered in Size.

When there are more tasks than rows that fit the screen, the list scrolls and shows ... N more beneath it. The highlight index always refers to the filtered view, and pkgr maps it back to the original task when you press Enter, so the right script runs.

After you press Enter the picker is gone and the terminal is returned exactly as it was. From then on Ctrl+C goes to the task, not to pkgr.

Support the project: Buy Me a Coffee or GitHub Sponsors.