Command-line tool
Upload from your terminal. One command, JSON output for scripts, resumable multipart for huge files. Source on GitHub.
Install
Homebrew (macOS & Linux)
$ brew install storageto/tap/storageto
Go
$ go install github.com/storageto/cli/cmd/storageto@latest
Make sure ~/go/bin is in your PATH.
Pre-built binaries
Download the appropriate tarball from GitHub Releases (macOS ARM/Intel, Linux ARM/Intel).
Usage
Single file
$ storageto upload photo.jpg URL: https://storage.to/FQxyz1234 Size: 2.1 MB Expires: 2026-04-15T12:00:00Z
Multiple files
Pass multiple paths or a glob - they're auto-grouped into a collection:
$ storageto upload file1.txt file2.txt file3.txt $ storageto upload *.log $ storageto upload src/**/*.go
Large files
Files over 5 GB are automatically chunked and uploaded in parallel with resumable multipart. Progress is printed inline:
1.2 GB / 10.0 GB (12.0%)
Press Ctrl+C to cancel - partial uploads are cleaned up on the server automatically.
Flags
-c, --collection-v, --verbose--json--no-token--api <url>https://storage.to).-h, --helpJSON output
$ storageto upload photo.jpg --json { "url": "https://storage.to/FQxyz1234", "filename": "photo.jpg", "size": 2202009, "human_size": "2.1 MB", "expires_at": "2026-04-15T12:00:00Z" }
Identity token
The CLI stores a random visitor token on first use so repeat uploads from the same machine share quota and attribution. It's not an account login - it's just a per-machine identifier.
~/Library/Application Support/storageto/token~/.config/storageto/token%AppData%\storageto\tokenPass --no-token to skip the token file entirely.
Scripting
Pipe --json output into jq to extract the URL:
URL=$(storageto upload build.zip --json | jq -r '.url') echo "Uploaded to $URL"
Version & updates
$ storageto version
Homebrew users: brew upgrade storageto. Go users: re-run go install with the latest tag.