A real VPN.
For your terminal.
Truly free — no signup, no email, no credit card. Install in one line, connect in one command.
On Mac: open Terminal, paste this, press Enter, then type your Mac password when prompted.
On Windows: open PowerShell, paste this, press Enter, then click Yes when Windows asks for permission.
Prefer a window?
Keep the CLI. Add the app.
Free VPN CLI is still the core product: scriptable, agent-friendly, reliable over SSH, and perfect for servers. The desktop app is a companion for everyday use — status, connect, regions, Ad Block, billing, and update checks in one clean window.
Install the command-line VPN and daemon. This is required and remains the source of truth.
Add the desktop app with one command. It talks to the same daemon and can be removed anytime.
Already installed the CLI? Run freevpn gui to open it, or
freevpn gui uninstall to remove just the window.
Dashboard
ConnectedAd Block
Network-level stats and controls.
Runs where your work already lives
Find your computer below to see if it's supported. If you can run a regular app on it today, you can run Free VPN CLI.
Mac
Intel + Apple SiliconAny Mac running macOS 12 (Monterey) or newer — includes both Intel and the newer Apple Silicon (M1/M2/M3/M4) Macs.
Linux
Intel / AMD · ARMMost Linux: Ubuntu 22.04+, Debian 12, Fedora, Arch, Raspberry Pi, cloud VMs (AWS, Hetzner, DigitalOcean, etc.).
Windows
Windows 10 · Windows 11Windows 10 (October 2018 update) or Windows 11. Installs in one click using a standard Windows installer.
Servers
Linux · macOS · WindowsRuns as a background service. Starts automatically on boot. No GUI, no tray icons — perfect for cloud boxes and CI runners.
Two lines and you're connected
Pick your platform, paste one command, and you're done.
The installer figures out which build to grab, checks the
download is genuine, and sets up the background service for you.
Prefer a window after that? Add it with freevpn gui install.
Want to see what it does first? Read the script.
Or skip the terminal entirely —
grab the native installer
(.pkg /
.msi /
.deb /
.rpm) for your OS, double-click, done.
First time on a Mac? Show me the 3 steps
- Open Terminal (⌘-Space, type “Terminal”).
- Paste the command above → Enter.
- Type your Mac password when asked (characters don't show).
First time on Linux? Show me the 3 steps
- Open your terminal (
Ctrl + Alt + Ton most distros). - Paste the command above → Enter.
- Type your password when prompted —
sudois needed once.
First time on Windows? Show me the 3 steps
- Open PowerShell from Start (not Command Prompt).
- Paste the command above → Enter.
- Click Yes on the Windows security prompt.
Prefer not to use the terminal? Use the direct installer download — double-click once it's downloaded.
freevpn upfreevpn statusfreevpn doctorfreevpn gui installBuilt the way a CLI should work
We wrote this for ourselves first — engineers, ops folks, agents, indie hackers. Every feature is here because not having it would have annoyed us.
- Instant connect
- One command.
freevpn uppicks the nearest pool by default and flips the switch in under a second on a warm daemon. - JSON everywhere
- Every command accepts
--jsonand returns a stable schema. Pipe it tojq, parse it in Python, hand it to an agent. - Agent-native
- Ships with a
SKILL.mdyour agent reads. Claude, Cursor, Codex, OpenClaw, Hermes — all of them can drive the tunnel on your behalf. - Tiny & fast
- No Electron, no Node, no extra runtime to install. One small program built on a VPN engine we've shipped for 10+ years.
- SSH-safe by default
- Connecting on a server you SSH'd into? Free VPN keeps your SSH session alive while it routes everything else through the tunnel.
- Always-on background service
- Runs as a proper system service that survives reboots — managed by your OS the same way Docker is. The CLI talks to it over a private local channel.
- Pick any region
freevpn regionslists every exit. Select by label ("US East") or slug (us-east), or just stay onFastestauto.- Encrypted end-to-end
- AES-256-GCM tunnels with
1.1.1.1DNS by default. No browsing logs, no DNS logs, no traffic inspection — same network as the Free VPN mobile apps. - Built-in doctor
freevpn doctorself-diagnoses DNS, routes, controller, license, and egress.--emaildrafts a support email with the JSON report attached.
Block ads and trackers before apps load them
Turn on Ad Block once and Free VPN applies it globally while the VPN is connected — browsers, apps, command-line tools, and background services all benefit from the same DNS-level blocking.
- Blocks known ad, analytics, and tracker domains across the whole device.
- Uses the same rule family as the Free VPN apps, refreshed from our content network.
- Works at the VPN layer, so it helps even outside the browser.
- See exactly what's been blocked — per-session stats with a top-blocked breakdown.
By type
Top blocked
… 385 more — see them all with freevpn adblock stats blocked,
or wipe counters with freevpn adblock stats reset.
Give SKILL.md to your agent.
Let it drive the VPN.
A single Markdown file documents every command, JSON schema, exit code, and troubleshooting recipe. Drop it into your agent's skills folder and it will connect, switch regions, verify your public IP, or diagnose a leaky tunnel — on its own, without asking you to remember a flag.
Test a geo-blocked feature. "Switch to a US exit, hit the endpoint, then switch back." The agent runs set-region, up, status, and reverts — you never touch the terminal.
Debug "my tunnel is up but nothing works." The agent runs freevpn doctor --json, reads the DNS/routes/egress checks, and either fixes it or escalates with a real report.
Pin CI runners behind a specific exit. One line in your workflow. The agent tails status --json until connected: true before kicking off tests.
Claude
Cursor
Codex
OpenClaw
Hermes
+ any MCP tool
up. status. down.
Three verbs cover 99% of what you'll ever type. set-region
and doctor cover the other 1%.
If any of this sounds like your day
AI agents & coding copilots
"Switch to a German exit, run the test, switch back." Your agent reads SKILL.md once and executes the chain — set-region, up, status --json — without you typing a flag.
Headless servers & CI runners
Pin a GitHub Actions runner, a scraper, or a staging box behind a fixed VPN exit. The background service is installed for you — no extra wrapper scripts needed.
Power users on macOS, Linux & Windows
You live in your terminal — your VPN should too. Bind freevpn up to a hotkey, surface the region in your prompt, pipe --json into jq (or ConvertFrom-Json on PowerShell).
Journalists, researchers, travelers
Privacy at the command line. Swap exits per task. Same binary on a MacBook, a Raspberry Pi, or a rented ARM VM — no account, no email, no tracker.
Free forever. Upgrade only if you want it.
Free VPN CLI is genuinely free to use — no signup, no email, no credit card. The only paid option is unlimited continuous connection time, for people who want the VPN running all day. Cancel any time. Prices in USD.
Free plan — $0 forever
No signup. No card. No expiry. Use it as much as you want.
- 30-min sessions with a 3-min break in between — on repeat, forever.
- Same servers, regions and Ad Block as the paid plan.
Need the VPN running non-stop?
The paid plans below remove the 30-min session limit — nothing else changes.
Unlimited time, billed weekly. Cancel in one click from the billing portal.
Unlimited time. Save ~58% vs. monthly — one charge a year, nothing else to think about.
Unlimited time, billed monthly. Swap plans any time from freevpn manage.
Common questions
Is the CLI really free? What's the catch?
freevpn up,
switch regions, turn on Ad Block, and use it every day without paying us
a cent. The free plan gives you 30-minute sessions with a
3-minute break in between, on repeat. If you'd rather have the
VPN stay connected non-stop, that's the only thing the paid plans add —
everything else (regions, encryption, server network) is identical.
How is this different from the Free VPN mobile and Mac apps?
How do I give the CLI to my AI agent?
~/.claude/skills/, Cursor's
rules folder, your Codex workspace, whichever path your tool uses.
Any agent that reads Markdown skills will pick up the commands,
JSON schemas, and exit codes and use them correctly on the first try.
Can I script with the CLI?
--json,
returns a stable schema, and exits with a documented numeric code so you
can branch reliably. Full reference in
SKILL.md.
Is it safe to run freevpn up on a server I'm SSH'd into?
/proc/net/tcp, identifies
active SSH peers, and pins each remote peer IP to the original
default gateway before re-routing everything else through the
tunnel. Your SSH session won't drop.
Do I need sudo for every command?
freevpn install and freevpn uninstall need
admin privileges, and those are one-time (on Windows the MSI
takes care of that via a single UAC prompt). Day-to-day
commands (up, down, status,
regions, doctor) all talk to the
daemon over a local unix socket (named pipe on Windows) and
run as your normal user — same trust model as docker.sock.
What platforms and distros are supported?
How does install work on macOS if I never use Terminal?
curl -fsSL https://freevpnapp.org/install.sh | sh, and press Enter.
The script downloads the right build, checks SHA-256, and asks once for your
Mac password to run sudo freevpn install (the service step). After it
finishes, run freevpn up to connect.
How does install work on Windows?
iex "& { $(iwr https://freevpnapp.org/install.ps1) }".
The script fetches the MSI, checks its SHA-256, and invokes
msiexec — you'll see the standard Windows UAC prompt
once for elevation, and the Free VPN service is installed under
the Windows Service Control Manager with Windows Event Log
integration. freevpn upgrade keeps it up to date
after that. If you prefer, you can also download the
.msi directly from /downloads
and double-click it.
What data do you collect?
Is the CLI open source?
SKILL.md will be opened
up over time — follow the blog for announcements.
Go on, try it.
One command away. Works on the machine you're reading this from.