pālana

The first five minutes

From opening the app to your first completed plan. There is no separate account or host setup: pālana uses the SSH configuration you already have.

Open it#

The panes come back where you left them. On first launch they point nowhere, and say so: nowhere—click to type host:path. Nothing has touched a host yet—pālana opens on what it remembers and connects only when you ask for something that needs a connection.

One host is always present: local, this Mac. Point a pane at local:~ and you have a file manager before you have any servers at all.

The window, labeled#

  1. The pane verbs. Point left where right points, swap the panes, point right where left points.
  2. The app's corner. Favorites (*), the host map (F), settings (⌘,), the keys (?).
  3. History. Back and forward through where this pane has been—⌘← ⌘→.
  4. The focus dot. Green means this pane has the keyboard; the other pane dims slightly. tab switches.
  5. The address. One typeable field—click it and enter host:path; ~ is the remote user's home. ⇧⌘G opens the same thing as a sheet.
  6. The star and the host menu. favorites this location; lists every host your ssh config names, your favorites, and the ways in—type an address, edit the config, reload.
  7. The rows. The cursor row is highlighted; space selects; verbs act on the selection. A filled drive mark means the folder is a ZFS dataset mountpoint.
  8. The pane's bottom strip. The terminal popout opens the same panel as `.
  9. The plan panel. It shows the complete plan before Enter and live output after. The green Return control runs the plan.
  10. The workbench strip. The zfs… overview in umber, then the reads—df, zfs list, zpool status, zpool list (⇧tab engages them, then d z s p).
  11. The window footer. Counts and selection, the send direction while an operation is up, any pending prefix, the sort—and ? keys, the standing reminder that the whole vocabulary is one keystroke away.

Your hosts are already there#

pālana's host list is your ~/.ssh/config—the same file your terminal uses, Include directives followed. If you can ssh koan, pālana already knows koan. There is no account to make and no registry to fill in.

Every pane header carries a menu: your hosts (each as host:~), your favorites, then type an address…, edit ~/.ssh/config…, and reload hosts. The config is the control—edit it in your own editor, reload, done.

Adding a machine pālana hasn't met? Settings (⌘,) → Add a host walks you through alias, hostname, user, port, and key, shows you the exact block it will write—block that will be written:—and backs up your config before touching it. If the first reach finds no usable key, pālana shows you the two commands to run (ssh-keygen -t ed25519, then ssh-copy-id <alias>) and waits. It never runs them for you—your keys are yours.

Point a pane#

Click the pane's address and type host:path—the field's own hint says it all: host:path—local: for this Mac, ~ for home. ⇧⌘G opens the same thing as a go-to sheet. One thing worth knowing on day one: ~ means the remote user's home, resolved on the host—not your Mac's.

Or skip typing: f summons the field view — your machines, their pools, their datasets, as remembered from last visit. Walk to a node with j/k, press , and the pane is there.

Walk around#

j/k or the arrows move the cursor; h and l step out of and into directories; enters a folder or opens a file; tab switches panes; / jumps—type a few letters, the cursor chases them. The full grammar is five rules and one page: the keyboard.

Your first copy#

Left pane on local:~/notes, right pane on koan. Select a file with space, press y—and nothing copies. The plan panel opens instead:

copy · the plan ⏎ enter runs
⏎ press enter to run this plan · esc dismisses it
copy · copy to another machine
1 entry · 18 kB
local:/Users/you/notes → koan:/rpool/sage/koan/notes
how: rsync, run from this Mac · using this Mac's ssh keys

$ rsync -a -s --partial --info=progress2 /Users/you/notes/homelab.md koan:/rpool/sage/koan/notes/
What you asked, what it actually is, the route, the transport with its auth path, and the exact command—before anything runs.

It is one rsync command, run from this Mac and authenticated by your agent. Press to run it; its output streams into the panel and ends with done—every step ran and checked out. Press esc to dismiss the plan without running it.

That's the whole loop, and it never changes shape: select the files, press the key, read the plan, press Enter. Moves, deletes, renames, ZFS snapshots—every mutation in pālana goes through this same gate.

Where next#

Read the plan is the product to understand what the plan is really telling you—it's the page that explains why pālana is shaped the way it is. Then keep the keyboard open in a tab for a day. You'll stop needing it by evening.