upload files, get temporary public URLs. dead simple.
$ npm i -g vanish-cli
Or use directly with npx:
$ npx vanish-cli upload file.png
Upload a file:
$ vanish photo.jpg
https://vanish.sh/f/b3kL8nR4.jpg
# copied to clipboard
Multiple files:
$ vanish a.png b.png c.png
https://vanish.sh/f/a7xK9mQ2.png
https://vanish.sh/f/c2mP5vX8.png
https://vanish.sh/f/d9nQ3wY1.png
With curl:
$ curl -T file.png https://vanish.sh/upload
{"url":"https://vanish.sh/f/e4rS7tU6.png"}
JSON output:
$ vanish --json file.png
{"url":"...","id":"...","expires":"2026-02-19T..."}
| Tier | File types | Max file | Storage | Retention | Rate limit | Price |
|---|---|---|---|---|---|---|
| Anonymous | images only | 5 MB | — | 24 hours | 10/hour | free |
| Free | all | 50 MB | 50 MB | 48 hours | 50/hour | free |
| Pro | all | 1 GB | 1 GB | 30 days (up to 365) | 200/hour | 2€/mo |
Anonymous uploads: images only, 24h. Sign in with GitHub for 48h retention and all file types.
$ vanish login
# opens GitHub OAuth in your browser
✓ logged in as @username
$ vanish upgrade
# upgrade to pro for 30-day+ retention (up to 365 days)
$ vanish ls # list your uploads
$ vanish status # show storage & tier info
$ vanish rm <id> # delete an upload
$ vanish whoami # show current user & tier
CORS-enabled — embed URLs directly in GitHub PRs and GitLab issues.