Scan a file,
then let it fly.

Plume is a command-line file-sharing tool. Before a file leaves your machine it scans for secrets and personal data, then serves it over a self-destructing link with a QR code. Offline intelligence. No accounts. No cloud.

$pipx install plumefile
Get it on PyPI
Plume terminal: a HIGH risk scan card, a share code and link, a QR code, and a feature list.
offline secret + PII scan self-destructing link LAN or free tunnel data profile + sentiment no accounts, no cloud

See it work

One command tells you what is inside

plume scan inspects a file and prints one insight card. Here it is on a config file with a planted AWS key, a Stripe key and a private key block.

plume scan on a secrets file: risk HIGH, suggested expiry 2m, and a table of redacted findings.

Why Plume

A pre-flight pass, then a link that expires

!

Secret and PII scan

An offline regex ruleset finds private keys, cloud keys (AWS, Google, Stripe), GitHub and Slack tokens, JWTs, passwords, emails, IPs and Luhn-checked card numbers. Findings are redacted before they are shown.

#

Risk to expiry

A deterministic cascade turns the signals into low, medium or high and suggests a link lifetime. A live-looking credential forces a 2 minute default.

=

Data + text profile

CSV, TSV and JSON get row, column, dtype and null counts. Text gets word counts, readability and offline sentiment.

↗

LAN or free tunnel

Shares over your local network out of the box, or a free public *.trycloudflare.com URL with --tunnel. No Plume-run servers.

⏳

Self-destructing

The link stops working at its expiry, with a grace window so a slow download still finishes. Chunked streaming, a 1.5 GB cap, nothing stored in the cloud.

Quickstart

Four commands

# inspect a file without sharing it
plume scan customers.csv

# scan, then seed it over a self-destructing link + QR
plume share report.pdf
plume share ./project-folder        # a folder is zipped into one archive
plume share secrets.env --tunnel     # also expose a free public URL

# receive by link or by code
plume get http://192.168.1.7:8737/amber-otter-42
plume get amber-otter-42 --host 192.168.1.7:8737 --out ./downloads
plume scan <path>

Run the pre-flight intelligence pass and print the insight card. Pure local.

  • --quiet, -q skip the banner
plume share <paths...>

Scan, then seed the file(s) over a self-destructing link with a QR.

  • --expire, -e 2m, 5m, 10m, 1h, or 45s
  • --tunnel, -t add a free public URL
  • --no-scan / --yes, -y
plume get <url|code>

Download a shared file with a progress bar and an ETA.

  • --host, -h host:port for a bare code
  • --out, -o save directory
plume serve

Run a persistent serving host for shares registered on this machine.

  • --port, -p default 8737