Bast
Hosts

Files

Browse local and remote files over SFTP, transfer between panes, and open a shell in the current directory.

The Files tab is a dual-pane browser. Each pane can be local or remote, in any combination (local↔local, local↔remote, remote↔remote). Press 4, or F on a host from Hosts to open Files and connect that host on the right pane.

Pane modes

ToneMeaning
Slate label localLocal filesystem
Amber remoteDisconnected: pick a host
Teal host aliasConnected over SFTP
KeyAction
L / RMake the focused pane local / remote
wSwap left and right panes
h / lParent / enter directory
g / GTop / bottom of list
/Edit path (or search hosts on a picker)
f / sFuzzy jump (type to filter, then a label letter to land)
DDisconnect a connected remote pane

Connecting

In a remote pane, select a host and press Enter. Bast prepares cloud access the same way as a normal connection, then opens OpenSSH SFTP (ssh -s sftp).

SFTP uses BatchMode, so passphrase and host-key prompts cannot interrupt the TUI. If connect fails, unlock the key with ssh-add, or Connect once from Hosts to accept the host key, then retry.

KeyAction
/ or j / kMove
EnterEnter directory, or connect selected host
h / BackspaceParent directory
TabSwitch pane
/Jump to a typed path (or search hosts)
.Toggle hidden files
Toggle mark
vStart or finish a range mark
f / sFuzzy jump

Click a pane to focus it, a row to select it, and the same row again to enter a directory or connect a host. Click the path header to edit the path (or search hosts on a picker). Scroll wheel moves the pane under the pointer.

Fuzzy jump

Press f or s on a file list. Entries go muted until you type. Matches light up and get a letter label (a, s, d, …). Keep typing to narrow, or type a label letter to jump there (flash-style). Esc cancels.

Copy and move always target the other pane’s current directory.

Transfers and edits

KeyAction
cCopy marked items (or the cursor row) to the other pane
mMove (copy, then delete source)
dDelete (confirm by typing the name, or DELETE for a batch)
aCreate directory
rRename
iFile info (name, type, size, mode)
pChange permissions (chmod) on local or remote items
esc / xCancel an in-progress transfer

File info

Press i on the cursor row. The focused pane shows name, type, size, mode (octal and symbolic), and modified time. j/k move to the next or previous item while info stays open. p jumps into the permissions editor. i or Esc closes.

Permissions

Press p on the cursor row or marked items. The focused pane opens an inline permissions grid for Owner / Group / Other with Read / Write / Exec. The current mode seeds the checkboxes.

KeyAction
or h j k lMove across the grid
Space or xToggle the focused bit (or recursive / octal focus)
07Set the current class (owner/group/other) to that octal digit
u g oJump to Owner / Group / Other
/Edit the octal mode directly
EnterApply
EscCancel

When any selected path is a directory, a contents option appears. Turn it on to apply the mode recursively (symlinks are skipped while walking).

Works the same on local and remote panes. The other pane stays visible while you edit.

Open a shell here

Press t on a local pane for $SHELL in that directory, or on a connected remote pane for ssh with cwd set (host RemoteCommand is cleared for this jump). On a host picker, t opens a normal SSH session for the selected host.

What this is not (yet)

Deferred for later:

  • Fuzzy find across the whole tree (current f jump is per-pane listing)
  • Directory sync / mirror
  • Trash / undo
  • chown UI
  • Inline previews
  • Shared ControlMaster connections

Native OpenSSH

Transfers use your system ssh binary and the same SSH config as Connect, including ProxyJump and cloud ProxyCommand tunnels.

On this page