File Transfer

Transfer files between the host Mac and the guest VM using drag-and-drop or the GhostTools event stream.

Host to Guest

Drag files from Finder onto the VM window to send them to the guest. GhostVM shows a transfer progress overlay with the filename, progress bar, and file size.

Files are transferred over vsock and saved to the guest's Desktop (or a configured location in GhostTools).

Guest to Host

GhostTools can queue files for transfer from the guest to the host. When files are available, a badge appears in the VM toolbar showing the count of queued files. Click to receive them.

Received files are saved to the host's Downloads folder by default.

File Quarantine

Files received from the guest are automatically tagged with the com.apple.quarantine extended attribute. This means macOS Gatekeeper will verify them before they can be opened or executed — the same protection applied to files downloaded from the web.

Why Quarantine?

A guest VM is an untrusted boundary. Quarantining received files ensures that code from the workspace cannot bypass Gatekeeper simply by being transferred to the host.

Transfer Protocol

File transfer uses the vsock event stream (port 5003). Files are sent as binary data with a header containing the filename and size. The protocol supports:

  • Simultaneous transfers of multiple files
  • Progress tracking for each file
  • Large file support (streamed in chunks)

Requirements

File transfer requires GhostTools running in the guest VM.