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
Raw:     https://storage.to/r/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

FlagDescription
-c, --collectionForce a collection even for a single file.
-v, --verboseShow detailed progress output.
--jsonEmit JSON result (machine-readable, great for scripts).
--no-tokenUpload fully anonymously — don't read or write the identity token file.
--api <url>Override the API endpoint (defaults to https://storage.to).
-h, --helpShow help.

JSON output

storageto upload photo.jpg --json
{
  "url": "https://storage.to/FQxyz1234",
  "raw_url": "https://storage.to/r/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.

OSPath
macOS~/Library/Application Support/storageto/token
Linux~/.config/storageto/token
Windows%AppData%\storageto\token

Pass --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.