Send Large Files from the Command Line
The Dropvi CLI sends files from a terminal and prints the share link, so you can pipe it into anything. It works for people at a keyboard and for scripts, CI jobs and AI agents running with no one watching. The same plan limits apply as in the browser, and no account is needed to send.
Install
Needs Node.js 22.2 or later. The package has no runtime dependencies.
Dropvi accepts new transfers only from version 0.2.0 or later, which encrypts them end to end. Update an older install with pnpm add -g @zorinto/dropvi-cli@latest.
pnpm add -g @zorinto/dropvi-cliOr run it once without installing:
pnpm dlx @zorinto/dropvi-cli send report.pdfFull reference:@zorinto/dropvi-cli on npm.
Commands
dropvi send <path...>Encrypt the files, upload them and print the share link, which carries the key.
dropvi send --resume <id>Continue a send that was interrupted, from the first part not yet stored.
dropvi get <id|url> [-o DIR]Download every file in a transfer, decrypt it and check each SHA-256.
dropvi listYour account's 50 most recent transfers.
dropvi rm <id|url>Revoke a transfer and delete its files.
dropvi loginSign in with an emailed code. Interactive only.
dropvi logoutRevoke this CLI's token and forget it.
Anywhere an id is accepted, a full share link works too. Every command takes --json, --quiet, --no-input and --help.
Sending Files
Pass files or a folder. The link is the only thing printed to standard output, so dropvi send footage.mov | pbcopy copies the link and nothing else. Add a title, a message, an expiry in days or email recipients with --to, which needs a signed-in account.
Every file's SHA-256 and CRC-32 are worked out as it uploads. If the connection drops or you press Ctrl+C, dropvi send --resume <id> carries on from the first part not yet stored, as long as the files have not changed.
On Business Pro and above, --password-stdin protects the transfer with a PIN and --max-downloads sets a download limit. Reading the PIN from standard input keeps it out of your shell history and process list.
Downloading and Checking Files
dropvi get downloads every file in a transfer and compares each one with the SHA-256 the sender's client recorded. A file that does not match is deleted and the command exits with code 9, so a damaged download never sits on disk looking correct.
File names from the server are checked before anything is written. An existing file is never overwritten without your say; in a script, the new copy is saved as report (1).pdf instead.
Encryption
dropvi send encrypts every transfer end to end on your own computer before upload: the file contents, names and types, the title, the message and the sender name. The key is only in the share link, after #k=, and is never stored on Dropvi's servers. Anyone who has the full link can open the transfer, so handle it as you would a password. If you lose the link, Dropvi cannot recover the key.
Dropvi still sees the number and sizes of the files, the email addresses you pass to --to, the expiry and download limit, and, for a transfer with a PIN, the PIN itself, which it checks before a download starts.
With --to, the email Dropvi sends your recipients contains a link without the key. The CLI prints the full link and then the key on a line of its own, so you can send the key to them another way, such as by message or phone. With --json, the key is in data.key.
dropvi get decrypts a transfer sent from the website or the CLI. It takes the key from the full link, then from standard input with --key-stdin, then from the DROPVI_KEY environment variable. A key that does not open the transfer exits with code 2 and the error wrong_key. A transfer that was altered or cut short exits with code 9 and the error integrity, and the damaged file is not kept.
Built for Scripts and AI Agents
With --json, each command prints exactly one JSON object, on success or failure, with a stable error.code and a retryable flag. dropvi --help --json prints every command and flag with its type, so an agent can check a command before running it. --dry-run on send and rm shows the request without making it.
The npm package includes a SKILL.md file that tells AI coding agents such as Claude Code how to run it: always pass --json and --no-input, and act on error.code rather than the message. An agent can then share a build, a report or a log file by link as one step of a task.
Exit codes tell a script what to do next without parsing text:
| Exit code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error, a wrong or missing PIN, or a key that does not open the transfer (wrong_key) |
| 3 | Not signed in |
| 4 | Refused because of the plan or ownership |
| 5 | Not found, deleted or expired |
| 6 | Download limit reached |
| 7 | Rate limited |
| 8 | Temporary failure after retries |
| 9 | Integrity failure (integrity): a file or its checksum was altered, cut short or inconsistent |
Prefer the Browser?
Dropvi Free sends up to 50 GB per transfer and keeps the link for up to 7 days, from the command line or the website. Recipients never need an account.
