Skip to main content

Use the interactive picker

4 min readStableIntermediate

Pick extensions visually, with every option one keystroke away, instead of typing flags.

Prerequisites

  • reserve installed. See Install reserve.
  • A real terminal. The picker needs a terminal to draw to, at least 40 columns by 10 rows.

Open the picker

Run reserve with just a name, at a terminal, and nothing else:

Bash
Bash
reserve example
Plain Text
┌ Groups - active ─────────────┐┌ Extensions (3 chosen) ───────────────────┐
│ By popularity                ││   [x] .com  business, tech, shop         │
│ >     Top 10          3/10   ││   [x] .net  tech, business               │
│       Top 25          0/22   ││   [x] .xyz  tech, creative, crypto       │
│ Hand-picked                  ││   [ ] .top  business                     │
│       Popular         0/22   ││   [ ] .nl   Netherlands - business       │
└──────────────────────────────┘└──────────────────────────────────────────┘
Up/Down move  Tab pane  Space toggle  / search  a all  n none  o settings  Enter run  ? help

To refine a selection you already made instead of starting blank, add --interactive alongside the extensions you named, and the picker opens with those already ticked:

Bash
Bash
reserve example --tld com,net --interactive

Move around and pick extensions

Up / Down, k / jkey

Move through the list.

PageUp / PageDownkey

Move 10 rows at a time.

Home / Endkey

Jump to either end of the list.

Tabkey

Switch between the group pane and the extension pane.

Spacekey

Pick or unpick: one extension in the right pane, or an entire group in the left pane.

akey

Pick everything currently shown.

nkey

Unpick everything. The first press asks Press n again to unpick everything, or any other key to keep it., so a stray keystroke can't wipe a selection.

/ opens a search box and filters as you type, by extension, country, or industry, within the highlighted group:

Plain Text
┌ Groups ──────────────────────┐┌ Extensions (0 chosen) ────────────────────┐
│ By popularity                ││   [ ] .band  creative, media              │
│       Top 10          0/10   ││   [ ] .bd    Bangladesh - business        │
│       Top 25          0/22   ││                                           │
└──────────────────────────────┘└────────────────────────────────────────────┘
/ ba█                                              Esc cancel   Enter confirm

Enter or Tab keeps the filter and closes the box; Esc clears it. The search bar stays visible while a filter is active, so you can see why the list is narrowed.

Open the settings screen

Press o to reach every option that shapes the run, so nothing on the command line is out of reach at the terminal:

Plain Text
┌ Settings 1 of 37  -  Left/Right change   Esc back   Enter run ──────────┐
│> names to check                 example                                 │
│  read names from a file         no file                                 │
│  search by name, country, or …  everything in the group                 │
│  read extensions from a file    no file                                 │
│  include restricted zones       no                                      │
│  ...                                                                    │
└─────────────────────────────────────────────────────────────────────────┘
Up / Downkey

Move between rows.

Left / Right, Spacekey

Change the row under the cursor.

Esc / Tabkey

Return to the panes.

Backspace, Delete, Home/End, Ctrl-A/Ctrl-E, Ctrl-U/Ctrl-K, Ctrl-Wkey

Normal line-editing keys, on a text row.

Enterkey

On a text row, moves to the next row rather than starting the run. Press Enter on any other row to run from there.

A number row refuses letters at the keystroke, so a value that couldn't be read never reaches the run. A row that narrows the extension list narrows the pane behind it immediately, and anything it hides also leaves the chosen set rather than being checked in silence. Nothing in the picker can replace the report on screen: save the files as JSON changes only what gets written to disk.

Run the sweep

Press Enter on the panes (or on a non-text settings row) to run. q or Esc leaves without checking anything.

CONSOLE
CONSOLE
$ reserve example --tld com,net,xyz
# ... picker opens, you press Space on .com, .net, .xyz, then Enter ...
 
   DOMAIN       STATUS     SOURCE      TIME  NOTE
-  example.com  TAKEN      registry  1104ms
+  example.net  AVAILABLE  registry   842ms
+  example.xyz  AVAILABLE  registry   917ms
 
2 available  1 taken  0 unknown   (3 checked)

The picker closes and reserve runs the sweep against whatever you picked, printing the same result table a flag-driven run would. If you leave without picking anything, reserve says so and exits without checking. Pass --group or --tld next time to skip the picker instead.

Enter refuses to run and tells you why, on the hint line, when there's nothing to check yet: no name has been given, nothing is picked, every pick is hidden by the current search filter, or a file/output row names something that can't work.

When the picker doesn't open

The picker only opens when there's a person at the terminal to answer it. All of these skip it automatically:

  • Piped input, or a redirected messages stream
  • A continuous-integration run
  • A terminal that can't draw a frame, or can't draw box characters (see RESERVE_PLAIN in Environment variables)
  • --no-input (or RESERVE_NO_INPUT in the environment)
  • Any flag that shapes what gets checked: --tld, --group, --json, and the rest. Naming one means the run is already decided; asking again would second-guess a choice already made. Flags that only change how the answer looks, such as --color, --progress, --width, -v, and -q, leave the picker open
  • Every name given already carries its extension (reserve example.com), since there's nothing left to select, unless --interactive is given
CONSOLE
CONSOLE
$ reserve example.com
 
   DOMAIN       STATUS  SOURCE      TIME  NOTE
-  example.com  TAKEN   registry  1104ms
 
0 available  1 taken  0 unknown   (1 checked)

--interactive asks for the picker directly; when the terminal can't take it, reserve says so and carries on without it:

CONSOLE
CONSOLE
$ reserve example --interactive
note: the picker cannot open here: the messages stream is not a terminal. Carrying on without it.

Run reserve doctor to see whether your terminal can open the picker, and why not when it can't.

Was this page helpful?

© 2026 Reserve. All rights reserved.