-
-
Notifications
You must be signed in to change notification settings - Fork 10
Keybindings
Press ? on any screen in the TUI to see context-sensitive help.
| Key | Action |
|---|---|
j / k
|
Navigate down and up |
PgDn / PgUp
|
Page down / up |
Enter |
Connect to selected host |
Tab |
Cycle to next top tab (Hosts -> Tunnels -> Containers -> Keys -> Hosts) |
Shift+Tab |
Cycle to previous top tab (Hosts -> Keys -> Containers -> Tunnels -> Hosts) |
Esc |
Clear group filter or multi-select. Cancels only, never quits. First idle press surfaces a one-shot toast pointing to q
|
a |
Add new host |
A |
Add pattern |
e |
Edit selected host or pattern |
d |
Delete selected host or pattern |
c |
Clone host or pattern |
y |
Copy SSH command |
x |
Export config block to clipboard |
/ |
Search and filter |
# |
Filter by tag |
t |
Tag host (bulk tag editor when hosts are selected) |
s |
Cycle sort mode (config order / A-Z alias / A-Z hostname / most used / most recent / down first) |
g |
Cycle group mode (none / provider / tag; tag step is skipped when no user tags are defined) |
i |
All directives |
v |
Toggle detail panel |
[ / ]
|
Scroll detail panel (Detailed view only; toggle with v) |
u |
Undo last delete or bulk tag operation |
p |
Ping selected host. ProxyJump hosts inherit bastion status |
P |
Ping all hosts. ProxyJump hosts inherit bastion status |
! |
Down-only filter (show unreachable hosts) |
S |
Cloud provider sync |
Space |
Select / deselect host |
Ctrl+Space |
Select / deselect host (alternative) |
Ctrl+A |
Select all visible / deselect all |
r |
Run snippet on host(s) |
R |
Run snippet on all visible |
F |
Remote file explorer (scp) |
C |
Per-host container overlay for the selected host (Docker / Podman). For every container across every host, use the dedicated Containers tab via Tab
|
T |
Manage host tunnels |
I |
Import from known_hosts |
X |
Purge stale hosts |
V |
Sign Vault SSH certificates for all signable hosts. Always available. Press V again during a run to cancel. When no role is configured shows a hint to set one in the host form |
K |
SSH key list overlay (legacy read-only view). For the multi-action surface use the Keys tab via Tab
|
m |
Theme picker |
n |
What's new overlay. Shows recent changelog sections. Also reachable via Jump |
: |
Jump. Universal fuzzy search across hosts, tunnels, containers, snippets and actions. Type to filter, Enter to open |
? |
Help |
q |
Quit |
| Key | Action |
|---|---|
| Type | Filter hosts |
Enter |
Connect to selected |
Ctrl+E |
Edit selected host |
Ctrl+P |
Ping selected host (ProxyJump hosts inherit bastion status) |
Esc |
Cancel search |
Tab / Shift+Tab
|
Next / previous result |
Ctrl+Space |
Multi-select toggle |
Ctrl+A |
Select all matching / deselect all |
Forms use progressive disclosure. Required fields are shown first. Press Tab or Down from the last required field to expand and reveal optional fields.
| Key | Action |
|---|---|
Tab / Down
|
Next field (expands form if on last required field) |
Shift+Tab / Up
|
Previous field |
Enter |
Always saves, regardless of which field is focused |
Space (on toggle field) |
Flip the boolean (Verify TLS, Auto Sync, Tunnel Type) |
Space (on empty picker field) |
Open the picker (Identity File, ProxyJump, Password Source, Vault SSH Role, Regions) |
Space (on populated picker field) |
Insert a literal space — supports paths like /home/me/My Keys/id_rsa and custom commands like my-script %h
|
Ctrl+D |
Set global default (in password picker) |
Esc |
Cancel (asks to discard if changed) |
Picker fields: when the field is empty, Space opens the picker overlay. Once you start typing the picker becomes unreachable until you backspace the field clean. This preserves free-text editing while keeping the picker discoverable.
Discard prompt: pressing Esc on a dirty form surfaces a confirm dialog that follows the standard y/n/Esc contract (see Keybindings#Confirmation-dialogs). Y confirms discard, n / N / Esc returns to the form.
All confirmations follow the same contract:
| Key | Action |
|---|---|
y / Y
|
Confirm |
n / N / Esc
|
Cancel |
| any other key | Ignored (by design — prevents stray keystrokes from cancelling) |
Footer labels use action verbs for destructive operations (y delete | Esc keep, y sign | Esc skip, y purge | Esc keep) so the choice is explicit.
Reachable from the Host List with Tab (or Shift+Tab). Lists every tunnel directive from your SSH config across all hosts. Active tunnels show live throughput, channel events and the client processes using them in the detail panel on the right.
| Key | Action |
|---|---|
j / k
|
Navigate |
PgDn / PgUp
|
Page down / up |
Enter |
Start / stop tunnel |
a |
Add tunnel (opens host picker first) |
e |
Edit selected tunnel |
d |
Delete selected tunnel |
s |
Cycle sort (most recent / alphabetical) |
/ |
Search by alias or forward |
n |
What's new overlay |
: |
Jump |
? |
Help |
Tab / Shift+Tab
|
Cycle to next / previous top tab (same cycle as the Host List) |
Esc |
Clear search. Cancels only, never quits. First idle press surfaces a one-shot toast pointing to q (flag shared with the Host List, shows at most once per session) |
q |
Quit |
Reachable from the Tunnels page with a when adding a tunnel. Filters the editable hosts (excluding hosts from included files) as you type. Letter keys append to the query; only ↑ / ↓ navigate the list.
| Key | Action |
|---|---|
| Type | Filter hosts by alias or hostname |
↑ / ↓
|
Navigate filtered list |
Enter |
Pick host and open tunnel form |
Backspace |
Pop one query character (closes picker when query is empty) |
Esc |
Cancel and return to Tunnels page |
Reachable from the Host List with T. Manages tunnel directives for the selected host only.
| Key | Action |
|---|---|
j / k
|
Navigate |
Enter |
Start / stop tunnel |
a |
Add tunnel |
e |
Edit tunnel |
d |
Delete tunnel |
PgDn / PgUp
|
Page down / up |
? |
Help |
q / Esc
|
Back |
| Key | Action |
|---|---|
j / k
|
Navigate |
Enter |
Edit on a single config; expand/collapse on a multi-config provider |
Space |
Toggle expand/collapse on a multi-config provider |
a |
Add another config of the selected provider (prompts for labels when multi-config) |
s |
Sync the selected config (or all configs of the provider when on a header) |
d |
Remove the selected config (on a multi-config provider header, expand the group first to pick a specific config) |
X |
Purge stale hosts |
PgDn / PgUp
|
Page down / up |
q / Esc
|
Back (cancels syncs) |
| Key | Action |
|---|---|
j / k
|
Navigate |
Enter |
Run snippet (captured output) |
! |
Run snippet (raw terminal) |
/ |
Search snippets |
a |
Add snippet |
e |
Edit snippet |
d |
Delete snippet |
PgDn / PgUp
|
Page down / up |
q / Esc
|
Back |
| Key | Action |
|---|---|
j / k
|
Scroll |
g / G
|
Jump to top / bottom |
n / N
|
Next / previous host output |
c |
Copy output |
PgDn / PgUp
|
Page down / up |
Ctrl+C |
Cancel execution |
? |
Help |
q / Esc
|
Close |
| Key | Action |
|---|---|
Tab |
Switch pane (local / remote) |
j / k
|
Navigate |
Enter |
Open directory or copy selected file(s) |
Backspace |
Go up one directory |
Ctrl+Space |
Select / deselect file |
Ctrl+A |
Select all / deselect all |
. |
Toggle hidden files |
s |
Cycle sort mode |
R |
Refresh both panes |
PgDn / PgUp
|
Page down / up |
Esc |
Close |
Reach the Containers tab from the Host List with Tab (or Shift+Tab from Tunnels). Every Docker or Podman container across every cached host is grouped per host under a divider row that carries the host alias. The detail panel on the right summarises the host (engine version, runtime, sync age and running/exited counts) when the cursor sits on a divider, and the container (image digest, restart policy, user, privileged flag, mounts, network, healthcheck, compose project and a tail of recent logs) when it sits on a container row.
| Key | Action |
|---|---|
Enter |
Drop into an interactive shell on the container (docker exec -it) |
l |
Open the logs viewer (last 200 lines) |
K |
Restart this container (confirms first) |
Ctrl-K |
Restart every running member of this compose stack, one by one (confirms first) |
S |
Stop this container (confirms first) |
e |
Run a one-off command inside the container (prompt) |
| Key | Action |
|---|---|
K |
Restart every running container on this host, in order (confirms first) |
S |
Stop every running container on this host, in order (confirms first) |
r |
Refresh this host's listing |
Space |
Fold / unfold the host group |
| Key | Action |
|---|---|
j / k / ↑ / ↓
|
Navigate |
PgDn / PgUp
|
Page down / up |
g / G
|
Top / bottom |
s |
Cycle sort (A-Z host / A-Z container) |
v |
Toggle detail panel |
/ |
Search containers, hosts and images |
Esc |
Clear search. Cancels only, never quits. First idle press surfaces the shared quit-hint toast |
R |
Refresh every cached host in parallel (max four at a time) |
a |
Add a host to the cache from a picker |
n |
What's new overlay |
: |
Jump |
? |
Help |
Tab / Shift+Tab
|
Cycle top tabs |
q |
Quit |
| Key | Action |
|---|---|
j / k / ↑ / ↓
|
Scroll one line |
PgDn / PgUp
|
Page down / up |
g / G
|
Top / bottom |
/ |
Open modeless incremental search (smart case: lowercase matches anywhere, uppercase is case-sensitive) |
Tab / Shift+Tab
|
Next / previous match (only while search is active) |
r |
Refresh (re-fetch last 200 lines) |
? |
Help |
Esc |
Close active search, or close the viewer when no search is active |
q |
Back to the Containers tab |
Search is modeless: while it is open, every keystroke is treated as input. Type to refine the query, Tab / Shift+Tab to step through matches, ← / → / Home / End / Backspace / Delete to edit, and Esc to exit search.
Single-line text input that captures an arbitrary command to run via docker exec -it inside the container under the cursor.
| Key | Action |
|---|---|
| Type | Edit the command |
Backspace |
Remove one character |
Enter |
Submit the command and drop into the exec session |
Esc |
Cancel and return to the Containers tab |
Reachable with a. Lists hosts that are not yet in the container cache so the next refresh can include them. Letter keys append to the query; only ↑ / ↓ navigate.
| Key | Action |
|---|---|
| Type | Filter hosts by alias or hostname |
↑ / ↓
|
Navigate filtered list |
Enter |
Add the highlighted host to the cache and return |
Backspace |
Pop one query character (closes picker when query is empty) |
Esc |
Cancel and return to the Containers tab |
The original per-host container overlay is still available with C on the Host List. It opens a single-host modal scoped to the selected host, with the same Docker / Podman runtime detection. For multi-host workflows (refresh all, restart whole stacks, jump between hosts) prefer the Containers tab.
| Key | Action |
|---|---|
j / k
|
Navigate containers |
s |
Start the highlighted container |
x |
Stop the highlighted container (confirms first) |
r |
Restart the highlighted container (confirms first) |
R |
Refresh the listing |
? |
Help |
q / Esc
|
Close the overlay |
Reachable from the Host List with Tab (cycles Hosts -> Tunnels -> Containers -> Keys). Lists every SSH key found in ~/.ssh/ with strength score, randomart fingerprint, encryption status, agent-loaded status, last-touch and a per-key activity sparkline. A Vault SSH cert TTL strip renders at the top when any host has a Vault SSH role configured. The linked-hosts panel below the hero lists every host that references the highlighted key.
| Key | Action |
|---|---|
j / k / ↑ / ↓ / → / ←
|
Navigate keys |
PgDn / PgUp
|
Page down / up |
g / Home
|
First key |
G / End
|
Last key |
Enter / c
|
Copy the highlighted key's .pub to the clipboard |
p |
Push the highlighted key to a multi-host picker |
V |
Sign Vault SSH certificates for all signable hosts (same handler as the Host List) |
/ |
Search keys by name |
n |
What's new overlay |
: |
Jump |
Tab / Shift+Tab
|
Cycle top tabs |
? |
Help |
Esc |
Cancel an in-flight push run. With no push running, the first idle press surfaces a one-shot toast pointing to q (flag shared with the Host List, Tunnels and Containers tabs) |
q |
Quit |
| Key | Action |
|---|---|
| Type | Refine the query |
Backspace |
Remove one character (empty query stays open; Esc is the explicit close) |
↑ / ↓ / ← / →
|
Navigate filtered list |
PgDn / PgUp
|
Page down / up |
Enter |
Copy the highlighted match and exit search |
Tab / Shift+Tab
|
Exit search and cycle top tabs |
Esc |
Close search |
Reached from the Keys tab by pressing p. Multi-select host picker that lists every host from ~/.ssh/config. Hosts whose vault_ssh role is configured (or whose CertificateFile points into ~/.purple/certs/) render as [-] and are skipped during selection commands so signed-cert hosts never receive a static authorized_keys append.
| Key | Action |
|---|---|
j / k / ↑ / ↓
|
Navigate hosts |
PgDn / PgUp
|
Page down / up |
g / Home
|
First host |
G / End
|
Last host |
Space |
Toggle the host under the cursor (vault hosts notify and stay unselected) |
a / A
|
Toggle every eligible host on or off (skips vault hosts) |
Enter |
Confirm selection and open the push confirm dialog. Empty selection notifies and stays |
Esc |
Cancel and return to the Host List |
| Key | Action |
|---|---|
y / Y
|
Push the key to every committed host (per-host outcome streams back as a toast) |
n / N / Esc
|
Return to the picker with the selection intact |
| Key | Action |
|---|---|
j / k
|
Navigate up / down |
Enter |
Apply selected theme |
q / Esc
|
Cancel and restore previous theme |
? |
Help |
| Key | Action |
|---|---|
j / k
|
Navigate |
Enter |
Filter by tag |
PgDn / PgUp
|
Page down / up |
? |
Help |
q / Esc / #
|
Back |
The Host List's K opens a read-only key list overlay carried over from earlier releases. The multi-action Keys tab is the preferred surface; this overlay stays for muscle memory.
| Key | Action |
|---|---|
j / k
|
Navigate keys |
Enter |
Open the key detail view |
? |
Help |
K / q / Esc
|
Close the overlay |
Select hosts with Space or Ctrl+Space, then press t to open the bulk tag editor.
| Key | Action |
|---|---|
j / k
|
Navigate tags |
Space |
Cycle action: [~] leave as-is, [x] add to all, [ ] remove from all |
+ |
Add a new tag |
Enter |
Apply changes |
u |
Undo (from host list, after apply) |
? |
Help |
q / Esc
|
Cancel (asks to discard if changed) |
Getting started
Features
- Jump
- Cloud Providers
- File Explorer
- Command Snippets
- Password Management
- Vault SSH Certificates
- Container Management
- SSH Tunnels
- Keys
- Tags and Search
- Host Patterns
- Themes
- MCP Server
- Whats New
Reference