Open a server the way you open a drive. After Go ▸ Connect to server… an SFTP, FTP or FTPS host is a folder in the panel — the same rows, the same keys, the same queue — and, for SFTP, a real shell on the same connection is one command away.
What it does
- Browse. A remote listing costs one round trip: SFTP and FTP listings carry full attributes, so cwdio never stats file by file. Previews, search, Properties sizes and the hex viewer all read through the connection like they read a local disk.
- Transfer both ways, through the queue. Local ⇄ remote — even remote ⇄ archive — runs through the same operation queue as everything else: progress, conflict prompts, per-file skip and retry, undo. A single file takes an accelerated path (concurrent SFTP chunks, direct FTP streams) and a folder tree fans out eight transfers at once, so a high-latency link is not a serial crawl. A verified or resumable copy uses the ordinary stream so the checksum and the offset are cwdio’s own.
- Mutate. New folder, new file, rename, delete and move on the server, from the panel or the queue.
- Edit in place. F4 on a remote text file opens it in the built-in editor and writes it back through the connection; a terminal editor runs in the SSH shell against the remote path.
- SSH shell on the same connection. Go ▸ Open SSH terminal opens a shell channel over the already authenticated SSH client — no new connection, no second prompt. It follows the remote panel and the panel follows it through the same OSC 7 sync the local terminal uses, and only when panel and shell are on the same server, so a Windows path never lands in an SSH prompt.
- Saved servers. Recent servers appear as chips in the connect dialog and under Servers in the Locations sidebar; a click reconnects silently from the encrypted vault; each can be edited or forgotten (which also clears its stored credential).
How to use it
- Go ▸ Connect to server… Pick SFTP, FTP or FTPS; enter host, port and user; choose password, key, agent or keyboard-interactive; optionally tick Remember.
- The active panel opens on the server. Work in it: F5/F6 to and from the other panel, Space to preview, Ctrl+Shift+F to search.
- Go ▸ Open SSH terminal for a shell that starts in the folder you are looking at.
- Disconnect from the panel’s server chip when done; the saved profile stays for next time.
Trust and credentials
- Host keys, trust on first use. The first connection records the server’s SHA-256 fingerprint; a later connection whose key differs is refused before credentials are sent. FTPS pins the server certificate the same way — a changed certificate fails the connect with an explicit validation error rather than a vague “could not connect”.
- Secrets never touch the disk in the clear. A remembered password or passphrase is stored through the operating system’s own encryption; if the OS reports no encryption backend the vault refuses to persist. Session credentials otherwise live in memory only, which is what makes silent reconnects possible.
- Nothing is uploaded anywhere. Servers you add, and how you reach them, exist only on your machine.
What it deliberately does not do
- FTP is serialised onto its single connection (the protocol is not safe for concurrent commands), so an FTP tree copy runs one file at a time rather than corrupting the session; SFTP fans out.
- Remote folders are not watched (there is no
fs.watchfor a server); a completed transfer reloads any panel showing the affected folder instead. - No cloud-storage connectors yet: OneDrive, Google Drive and Dropbox appear as their synced local folders, not through their APIs.
- Not yet: an interactive fingerprint confirmation on first connect (today the first key is recorded and later changes are refused), a remote shell profile picker, and FTP terminals (FTP has no shell).
Related
- Terminal sync — the same follow-me model, local and remote.
- Transfers and the queue — verify, resume, retry over any link.
- The built-in text editor — remote files edited in place.