Skip to content
s3nd
Menu

Command-line file transfer

A croc alternative with nothing running between the two machines

A code in a terminal, no account, open source, and a sender who does not want to think about networks. croc is the tool most people reach for when they want exactly what the s3nd CLI does.

What croc is

In its own terms.

A Go command-line tool for sending files and folders between any two computers with a code phrase. It uses a PAKE for end-to-end encryption, a relay to get through NATs, resumes interrupted transfers, and ships as a single binary for every platform.

Side by side

Where they part ways.

 s3ndcroc
What it isA CLI, a library and React hooks over your own S3 bucketCLI file transfer with a code phrase
Where the data livesYour bucket: S3, R2, MinIO, Scaleway, WasabiIn transit only, through a relay
Both ends online at onceNo. The code is redeemed later, until it expiresYes
From inside your web appYes, through one route on your serverNo
AccountsNone. The code is the whole handshakeNone
HostingYour bucket, plus your server when a browser takes partPublic relay by default; self-hostable
PriceFree. You pay your storage provider for a few objects that expireFree
LicenseMITMIT

The differences

What actually changes.

Live versus stored

croc streams while both ends are connected. s3nd stores the object and leaves; the code works later, from a machine that was off when the transfer was made.

A relay versus a bucket

croc uses a public relay by default and lets you run your own. s3nd uses the bucket you already have, with the provider’s durability, lifecycle rules and billing.

Resume and size

croc resumes a broken transfer and handles very large files well. s3nd does a single PutObject today, which is right for snapshots and ordinary files; multipart is on the roadmap.

A primitive, not only a tool

The same code that runs the CLI runs in a Next.js route and behind React hooks, so an application can offer the same move-with-a-code to its users.

The decision

Pick the one that fits.

Pick croc when

  • Both ends are online and you want end-to-end encryption for free.
  • Multi-gigabyte files where resume matters.
  • No cloud account of any kind, not even a bucket.

Pick s3nd when

  • The two machines are never online at the same time.
  • A server in front, handing out tokens instead of S3 keys, for a team.
  • A web app moving its own data, with the CLI as a bonus.

Put a file. Hand over the code.

Point it at the bucket you already pay for. Nothing to deploy, nothing to sign up for, nothing in the middle.

npm install -g @s3nd/clis3nd init --provider r2 --bucket drops3nd put ./anything.zip