vrok straight from your machine

A URL for a file,
a folder, or
localhost

Stop uploading. Stop deploying. One command gives your files, folders or local dev server a link anyone can open, served straight from your machine. No account, no size limit, and it's gone when you stop it.

  • No size limit
  • No account
  • macOS · Linux · Windows
Watch it run — 20 seconds
  1. Install

    curl -fsSL https://raw.githubusercontent.com/AliJabbar034/vrok/main/install.sh | sh

    Or with Homebrew

    brew install --cask AliJabbar034/tap/vrok

    Free, MIT, no account. Windows, Linux packages, archives · How to use it

  2. Run it on anything

    vrok ./quarterly.pdf

    Or a folder, several files, or vrok localhost:3000 for a running app. Every command

  3. Send the link

    Send the URL. It works until you press Ctrl+C, or until the expiry or download limit you set.

$ vrok ./quarterly.pdf

✓ Sharing quarterly.pdf

URL:
https://avi-downtown-justin-postings.trycloudflare.com/s/8kLmP3qR7wXz2vN4bYtJcA/ (copied to clipboard)

Expires when stopped · anyone with the link

c copy · q QR code · p add password · e change expiry · 1 one-time link · x stop

■ Stopped sharing quarterly.pdf

Downloads:
3
Transferred:
7.2 MB
Last access:
14:02:19
vrok's own output. Those three downloads were counted in your terminal and reported nowhere else.

Watch it run

The whole round trip, replayed from vrok's real output: you run one command, they open the link, they download, and your terminal shows it happening.

They downloaded a 4 GB video. Your terminal kept the summary.

You · terminal

$ vrok ./launch-cut.mov

✓ Sharing launch-cut.mov

URL:
https://quiet-harbor-lamps-tuesday.trycloudflare.com/s/Xr4kQ9mT2vLp8sWnBcYd7A/ (copied to clipboard)

Expires when stopped · anyone with the link

c copy · q QR code · p add password · e change expiry · 1 one-time link · x stop

↓ Sent 4.0 GB in 1m 48s · 38 MB/s average

Them quiet-harbor-lamps-tuesday.trycloudflare.com/s/Xr4kQ9mT2vLp8sWnBcYd7A/
vrok
launch-cut.mov 4.0 GB
Download

SHA-256 3a7bd3e2360a3d29eea436fcfb7e44c735d117c42d1c1835420b6b9942dd4f1b

Watch here, or download the original
launch-cut.mov 4.0 GB · Done

Replayed from vrok's real output. Downloads are shown faster than they ran; the numbers are what the terminal printed.

When you'd reach for it

  • Send a client a 4 GB cut

    No upload, no waiting on a transfer service. They watch it in the browser, seek around, or download the original. Sending large files

    vrok ./cut-03.mp4
  • Show a teammate your localhost

    Your dev server gets a public URL, with hot reload still working for whoever opens it. Sharing localhost

    vrok localhost:3000
  • Hand QA the test report

    A Playwright report or a built site opens as the real thing, not a pile of files.

    vrok ./playwright-report
  • Pass along a folder

    A browsable listing, every file previewable, and the whole folder as one zip.

    vrok ./assets

Why vrok, not ngrok or WeTransfer

Upload services make you wait, then keep a copy. Tunnels stay open until you remember them. vrok gives someone a link to what is already on your machine, for exactly as long as you decide.

  • 0 bytesuploaded before they can start
  • Secondsfrom command to a working link
  • No limiton file size, beyond your disk
  • 0 accountsfor you or for them

Share now, not after an upload

The link works the moment vrok starts. They are already downloading while an upload service would still be uploading.

vrok ./launch-cut.mov

Any size, and it resumes

A 50 GB disk image works like a 5 MB PDF. A dropped connection picks up where it stopped, and your terminal shows the progress.

↓ 2.7 GB / 4.0 GB · 67% · 38 MB/s

One tool instead of three

Files, whole folders and a running dev server, with one command. No more ngrok for one job, a file host for another and python -m http.server for the third.

vrok localhost:3000

You decide when it dies

It lasts until you stop it, or closes itself after a set time or a number of downloads. No forgotten link left on someone else's server.

--ttl 2h --downloads 1

Only what you named is reachable

Share demo.pdf and that file is all there is: not the folder, not ../, not a symlink that walks out.

vrok ./demo.pdf

Free, open, no signup

MIT licensed. No account, no paid tier, no telemetry. Read the code, or run your own relay.

MIT · no account · no telemetry

What the other person gets

  • Nothing to install. Any browser on any device, including a phone. No app, no account, no sign-in.
  • View. Video, audio, images, PDF, HTML, Markdown, JSON, text, and zip listings render in the page.
  • Download. The original file, with Range support so a video can resume.
  • Browse. A folder share is a listing. Click a name to view it; the arrow downloads that file only.
  • Locked. A password share shows a locker form. Nothing about the file is visible until it unlocks.
  • All at once. A folder page has a Download all (.zip) button, built while it downloads.
  • Checked. The file page shows its SHA-256, so the other person can confirm their copy is intact.

Side by side

How vrok compares with tunnels and file hosts
If you need vrok ngrok / tunnels WeTransfer / file hosts
Time until the link works Seconds Seconds After the upload finishes
Share a file or folder from disk Yes — preview, seek, zip Only if you run a file server Yes, by uploading a copy
Share a localhost app, hot reload intact Yes — vrok localhost:3000 Yes — their main job No
File size limit None — your disk Not applicable Set by the plan
Link that expires or works once Time, downloads, password, revoke Up until you stop it After their retention period
Account needed No Yes Depends on the service
Still there after you switch off No — by design No Yes — their main job

Use ngrok for a long-lived tunnel to a port you already serve. Use a file host when the recipient must still have the file after you switch off. Use vrok when someone needs what is on your machine now, and should not have it tomorrow. The full comparison.

Safe by default

Expiry
Works until you stop it. --ttl 30m, 2h or 1d makes it close itself.
Download limit
--downloads 5 closes the share after the fifth. Seeking in a video or resuming a download does not use one up.
Password
--password, or press p while it runs. Stored as an Argon2id digest, never in plain text.
Nothing uploaded
Bytes are read from your disk as the visitor downloads. There is no server holding a copy, so there is nothing to delete later.
Only what you named
A file share is that file, not the folder it sits in. ../ and symlinks that point outside answer 404. Every URL carries 128 random bits.
Revoke
vrok list shows what is open. vrok revoke a82kd9 kills one URL now.

Questions people ask

How do I share a large file without uploading it?

Run vrok ./video.mp4. vrok serves the file from your own machine through a temporary public URL, so nothing is uploaded first and there is no size limit beyond your disk. The person you send the link to can watch it in the browser or download the original, and an interrupted download resumes.

How do I share my localhost with someone?

Run vrok localhost:3000 while your dev server is running. You get a public HTTPS URL that reverse-proxies to it, with WebSockets intact, so hot reload keeps working for the person you send it to. No account, no configuration.

Is vrok a free ngrok alternative?

For sharing, yes. vrok is free, open source (MIT) and needs no account. It exposes a localhost port like a tunnel does, and it also serves files and folders directly, with previews, download limits, passwords and an expiry. How it compares.

How is vrok different from WeTransfer or Google Drive?

Those services upload a copy of your file to their servers and keep it there. vrok uploads nothing: visitors read the file from your machine while the command runs, and the link stops working when you stop it or it expires.

Can I make a link that expires or works only once?

Yes. --ttl 2h closes the share after two hours, --downloads 1 makes it a one-time link, and --password asks visitors for a password. While a share runs, press 1, e or p to change these without changing the URL.

Can people see other files on my computer?

No. A visitor reaches only what you named: sharing one file exposes that file, not the folder around it. Paths like ../ and symlinks that point outside a shared folder answer 404, and every URL carries a 128-bit random token.

Does the other person need to install anything?

No. They open the link in any browser. Only the person sharing runs vrok.

Does it work on Windows, macOS and Linux?

Yes. vrok is a single binary for macOS (Apple silicon and Intel), Linux (x86_64, ARM64, ARMv7), Windows and FreeBSD, installable with one command, Homebrew, Scoop, a Linux package (.deb, .rpm, .apk) or a verified archive.

Take one command and go

curl -fsSL https://raw.githubusercontent.com/AliJabbar034/vrok/main/install.sh | sh
  • macOS · Linux · Windowsone binary
  • MITfree and open source

Other ways to install · How to use it

Built by Ali Jabbar, one person, MIT licensed. Questions and bugs go to Issues; security findings to a private advisory. Or say hello on LinkedIn.