# File transfer verbs

Move files between the cloud container and the laptop (streamed, SHA-verified).

_Part of the [Adom Desktop verb reference](VERB-REFERENCE.md). Invoke as `adom-desktop <verb> '<json>'`._

### `pull_file`

Pull files from the desktop back to Docker. Streams as binary WS frames (1 MiB chunks) — works for files up to several hundred MB. The legacy 30s base64-JSON path is gone; pull_file v1.4.3+ has no practical size limit.

**Args:**
  - `filePaths` — required array of absolute Windows paths (e.g. "C:\Users\\me\\Downloads\\big.pdf")
  - `saveTo` — optional directory on Docker (default /tmp). Created if missing.

**Returns:** files: [{name, path, size, sha256, chunks}] — sha256 verified before file is finalized; mismatch deletes the partial and reports failure. chunks is the number of 1 MiB binary frames received.

**Note:** Per-file timeout is 600s (enough for ~600 MB at 1 MB/s). For 75 MB files expect ~12s on a typical home connection. errors[] is included alongside files[] when at least one but not all files succeed; success is true iff at least one file landed.


### `send_files`

Send files from Docker container to the desktop

**Args:**
  - `destinationFolder` — optional relative subfolder
  - `filePaths` — required array of absolute paths
  - `targetApp` — optional: general|kicad|fusion360

