Skip to content

CLI Drop Commands

Upload, download, list, and manage encrypted file drops from the command line.

The anonli drop commands let you upload, download, and manage end-to-end encrypted file drops. Files are encrypted locally with AES-256-GCM before upload — the server never sees your unencrypted data.


Upload

Upload and encrypt files.

Code
anonli drop upload [path] [options]

Arguments

ArgumentDescription
[path]File or directory to upload. Omit it and pipe data in to upload from stdin (requires --name).

Options

FlagDescription
-t, --title <text>Set an encrypted title for the drop
-m, --message <text>Attach an encrypted message
-e, --expiry <days>Expiration in days, 1–30 (default: your plan's maximum; capped to your plan)
-n, --max-downloads <n>Limit number of downloads
-p, --password <pass>Password-protect the drop (requires Plus or Pro)
--name <name>File name when reading from stdin (required for stdin uploads)
--notifySend email notification on download
--hide-brandingRemove anon.li branding from the download page
--no-vaultDo not store the owner key in your account vault

Examples

Code
# Upload a file with 7-day expiry
anonli drop upload ./report.pdf --expiry 7

# Upload from stdin with a custom name
cat backup.sql | anonli drop upload --name backup.sql

# Upload a directory with title and download limit
anonli drop upload ./project --title "Project files" --max-downloads 5

# Password-protected upload
anonli drop upload ./secret.zip --password "s3cret" --expiry 3

How Encryption Works

  1. A random AES-256-GCM key and 12-byte base IV are generated locally
  2. The title and message (if provided) are encrypted with the key
  3. Each file gets its own 12-byte IV, then is split into 50 MB chunks encrypted with IVs derived from that file IV + chunk index
  4. Encrypted chunks are uploaded concurrently to storage
  5. By default, the CLI prompts for your vault password and stores a vault-wrapped owner key for dashboard recovery
  6. The share URL is returned with the decryption key in the fragment: https://anon.li/d/<id>#<key>

The #<key> fragment is never sent to the server.

Use --no-vault only when you intentionally want a link-only drop. Without vault storage, the dashboard cannot recover the drop key if you lose the share URL.


Download

Download and decrypt files from a drop.

Code
anonli drop download <target> [options]

Aliases: anonli drop dl

Arguments

ArgumentDescription
<target>Drop URL or drop ID. When using a URL, the decryption key is extracted automatically from the fragment.

Options

FlagDescription
-o, --output <dir>Output directory (default: current directory)
-k, --key <key>Decryption key (not needed if included in the URL)
-p, --password <pass>Password for protected drops
--recipient-token <token>Named-recipient access token, for drops restricted to named recipients (not needed if included in the URL)
--overwriteOverwrite existing files
--skipSkip existing files

Examples

Code
# Download using the full share URL
anonli drop download "https://anon.li/d/abc123#U2FsdGVkX1..."

# Download by ID with a separate key
anonli drop download abc123 --key U2FsdGVkX1...

# Download to a specific directory
anonli drop download "https://anon.li/d/abc123#key" --output ~/Downloads

# Download a password-protected drop
anonli drop download "https://anon.li/d/abc123#key" --password "s3cret"

Resume Support

If a download is interrupted, the CLI saves progress to a .anonli-dl temporary file. Re-running the same command resumes from where it left off using HTTP Range requests.


List

List your active file drops.

Code
anonli drop list [options]

Aliases: anonli drop ls

Options

FlagDescription
--limit <n>Results per page (default: 50)
--offset <n>Pagination offset
--expiredShow only expired drops
--disabledShow only disabled drops
--enabledShow only active drops
--sort <field>Sort by: created, expiry, size, downloads (default: created)
--order <asc|desc>Sort order (default: desc)
--jsonOutput raw JSON

Example

Code
# List active drops sorted by size
anonli drop list --enabled --sort size

# Get JSON output for scripting
anonli drop list --json | jq '.[].id'

Info

View details and file list for a drop.

Code
anonli drop info <target> [options]

Aliases: anonli drop get

Arguments

ArgumentDescription
<target>Drop URL or drop ID

Options

FlagDescription
-k, --key <key>Decryption key to reveal encrypted filenames
-p, --password <pass>Password for protected drops
--jsonOutput raw JSON

Delete

Permanently delete a drop.

Code
anonli drop delete <target> [options]

Aliases: anonli drop rm

<target> is a drop URL or drop ID.

Options

FlagDescription
-f, --forceSkip confirmation prompt

Toggle

Enable or disable a drop.

Code
anonli drop toggle <target>

Returns the new state (enabled or disabled). Disabled drops cannot be downloaded but are not deleted — you can re-enable them later.


Share

Reconstruct a shareable URL for a drop.

Code
anonli drop share <target> [--key <key>]

<target> is a drop ID or URL. If no key is given (via --key or the URL fragment) and you are logged in, the CLI recovers the key from your vault after prompting for your vault password. Password-protected drops never put the key in the URL; share the password separately.

Options

FlagDescription
-k, --key <key>The decryption key (the part after # in the original URL). Optional when logged in — recovered from your vault

Example

Code
anonli drop share abc123 --key U2FsdGVkX1...
# → https://anon.li/d/abc123#U2FsdGVkX1...