> ## Documentation Index
> Fetch the complete documentation index at: https://www.thundercompute.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# File Transfers

> Move files to and from Thunder Compute instances using the CLI. Upload or download data between local and cloud GPU hardware.

<Columns cols={3}>
  <Card title="VS Code" icon="window" href="/vscode/operations/file-transfers" color="#95c5ea" className="platform-card">
    Editor extension
  </Card>

  <Card title="CLI" icon="terminal" color="#95c5ea" className="platform-card platform-current">
    Command line
  </Card>

  <Card title="Console" icon="browser" href="/console/operations/file-transfers" color="#95c5ea" className="platform-card">
    Web interface
  </Card>
</Columns>

## Transfer Files

```bash theme={null}
tnr scp <source> <destination>
```

Prefix a path with `instance_id:` to indicate it's remote.

```bash theme={null}
# Upload: local → remote
tnr scp ./data.csv 0:/home/user/

# Download: remote → local
tnr scp 0:/home/user/results.csv ./
```

<Info>
  Directories are transferred recursively. SSH keys and `~/` expansion are handled automatically.
</Info>

<Note>
  Uses `rsync` on Linux and macOS for better performance and progress display. Falls back to `scp` if rsync is unavailable. On Windows/WSL, uses `scp`.
</Note>

## Best Practices

* **Compress large transfers**: Zip files before transferring to reduce time
* **Use cloud storage for big files**: For datasets over a few GB, upload to cloud storage and download directly to your instance
