Elyra
Elyra The coding agent eTerm The terminal that knows where each command ends Starf An activity monitor for Apple silicon that never invents a number etrans An SSH and SFTP client for macOS Litr A small, native web browser for macOS Notr A notebook for macOS e The native code editor Elyra Grove Native local development environment Askr The real server for Laravel & PHP Elyra Framework Rust + Svelte 5 framework for desktop apps Elyra Conductor Local project conductor Refr Local-first PDF workspace for macOS Elyra Workspace A desktop workspace for coding agents Elyra SQL Server MySQL-compatible SQL server in Rust Elyra Félagi Agents as teammates on one board Elyra SQL Client Native desktop SQL workbench Elyra SQL Anywhere Replication-ready SQL engine Elyra Sjá SEO & GEO workspace for macOS Elyra DataGrid Server-driven data grid for Laravel
Release notes
Changelog
Elyra

Transfers

Starting one

  • Drag files or folders from one pane to the other. Drop on a folder in the other pane to copy into it, or anywhere else in it to copy into the folder it shows.
  • Drop files from Finder onto the server pane.
  • Select and press ⇧⌘→ (upload) or ⇧⌘← (download), or right-click and choose Upload or Download.

Each item you drag is one transfer; a folder takes everything in it along.

The drawer

The transfers drawer opens under the panes when a transfer starts. ⌥⌘T, or the arrows at the right of the toolbar, show and hide it; the arrows carry a count while transfers are running. Each transfer shows:

  • the name and an arrow, up for an upload and down for a download,
  • a progress bar, bytes so far of the total, the file it is on (file 3 of 120), the speed and the time left,
  • when it is done, where it went, and how much was picked up from an earlier attempt.

× stops a running transfer. Clear removes the finished ones.

How a transfer runs

A folder is planned before anything moves: every file and folder in it is listed first, so the total, the speed and the time left are real from the start. Then the files go across one at a time. Several transfers run side by side, three unless Settings says otherwise.

Modification times are kept. An uploaded file that is executable on this Mac stays executable on the server; everything else gets the server's usual permissions. Links to folders on the server are not followed when downloading, so a link that points back up cannot copy forever.

When a file is already there

etrans asks:

  • Replace the file that is there,
  • Skip this one,
  • Keep Both: the new one is saved beside it as name 2.ext,
  • Stop the whole transfer.

Tick Do the same for the rest to answer once for the whole transfer. Folders that already exist are merged into, never replaced. To stop being asked at all, choose an answer under If it exists in Settings.

Interrupted transfers

Every file is written to a hidden partial file beside the real one, named for the size and modification time of what it is a copy of:

.backup.sql.2148532224-1791198000.etrans-part

Only when it is whole does it take the real file's place, so a file that looks finished always is.

  • A file that fails part way is tried again from where it stopped, twice unless Settings says otherwise, with a short pause before each attempt.
  • When that does not help, the transfer stops with the reason, and the partial file stays. The transfer gets a Retry button (↻); pressing it carries on from the partial file instead of starting over. Retry All retries every transfer that can be.
  • When the connection drops, etrans gets it back on its own and the transfers that were running carry on by themselves. See Reconnecting.
  • When you stop a transfer yourself, its partial file is deleted.

Retry only works on a connection to the same server the transfer was going to. Because the partial file is named for its source, a source that has changed since is copied from the start, never stitched onto a piece of the old one.

An upload replaces the server's file only when the new one is complete: the old one is removed and the finished copy takes its name, a moment of two requests.