Skip to main content

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. Sending needs a free account: run dropvi login once.

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-cli

Or run it without installing, signing in first:

pnpm dlx @zorinto/dropvi-cli login

Full 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 list

Your account's 50 most recent transfers.

dropvi rm <id|url>

Revoke a transfer and delete its files.

dropvi login

Sign in through the browser by approving the code it shows. Interactive only.

dropvi logout

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

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 every plan, --password-stdin protects the transfer with a PIN. On Business Pro and above, --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 the full link with the key, so they open the files with one click. To write it, the CLI gives Dropvi the key when the upload finishes. Dropvi uses it only for that email and does not store it, and anyone who can read the email can open the files. To keep the key from Dropvi entirely, leave out --to and send the link yourself. With --json, the key is also 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.

dropvi login needs a person at a browser and refuses under --no-input. For scripts, CI jobs and agents, create a token at dropvi.com/cli/token and set it as DROPVI_TOKEN.

Exit codes tell a script what to do next without parsing text:

Exit codeMeaning
0Success
1Unexpected error
2Usage error, a wrong or missing PIN, or a key that does not open the transfer (wrong_key)
3Not signed in
4Refused because of the plan or ownership
5Not found, deleted or expired
6Download limit reached
7Rate limited
8Temporary failure after retries
9Integrity failure (integrity): a file or its checksum was altered, cut short or inconsistent
130Interrupted (Ctrl+C)

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.