Install and sign in
Needs Node 22 or newer.
npm install -g yungle-cli
yungle auth loginPaste a key from Settings → API keys. It is saved to your own machine, so you do this once.
Send a folder
yungle send ~/Shoot --to client@example.com --message "Final selects attached."It prints the share link when it finishes. Leave out --to and you get a link to pass on yourself, which costs nothing from the daily email budget.
- Folder structure is preserved, so
Shoot/Ceremony/Rawarrives asShoot/Ceremony/Raw. - Hidden files are skipped while walking a directory — a shoot folder carries a
.DS_Storein every subdirectory — and kept when you name one directly. --expires 90sets the lifetime, clamped to your plan’s maximum rather than rejected.
What happens when it is interrupted
Run the same command again with the same files. It resumes the existing transfer rather than starting a second one, and re-uploads only what had not landed.
yungle send ~/Shoot --to client@example.com # killed at 92%
yungle send ~/Shoot --to client@example.com # continues, same transferIn a script
--json on any command prints a machine-readable object on stdout; progress goes to stderr, so a pipe stays clean.
URL=$(yungle send ./render --json | jq -r .url)
curl -X POST "$SLACK_WEBHOOK" -d "{\"text\":\"Render ready: $URL\"}"What it cannot do yet
- Vault support is not built. Reaching the vault from your own machine is possible in principle — that is where its key is derived — but it is not written.
- There are no webhooks, so a script that wants to know about a download polls for it.
How uploading works covers the protocol if you would rather build the upload yourself.