Looking for the regular app? Most users want the desktop or mobile download →

A real VPN.
For your terminal.

Truly free — no signup, no email, no credit card. Install in one line, connect in one command.

Paste in Terminal
$ curl -fsSL https://freevpnapp.org/install.sh | sh

On Mac: open Terminal, paste this, press Enter, then type your Mac password when prompted.

Paste in PowerShell
PS> iex "& { $(iwr https://freevpnapp.org/install.ps1) }"

On Windows: open PowerShell, paste this, press Enter, then click Yes when Windows asks for permission.

#1 Free VPN
100M+
Installs worldwide
10+ yrs
Battle-tested VPN core
1,000+
Servers · global exits
Optional desktop app

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.

CLI first

Install the command-line VPN and daemon. This is required and remains the source of truth.

Window when useful

Add the desktop app with one command. It talks to the same daemon and can be removed anytime.

$ freevpn gui install

Already installed the CLI? Run freevpn gui to open it, or freevpn gui uninstall to remove just the window.

Supported Platforms

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 Silicon

Any Mac running macOS 12 (Monterey) or newer — includes both Intel and the newer Apple Silicon (M1/M2/M3/M4) Macs.

Linux

Intel / AMD · ARM

Most Linux: Ubuntu 22.04+, Debian 12, Fedora, Arch, Raspberry Pi, cloud VMs (AWS, Hetzner, DigitalOcean, etc.).

Windows

Windows 10 · Windows 11

Windows 10 (October 2018 update) or Windows 11. Installs in one click using a standard Windows installer.

Servers

Linux · macOS · Windows

Runs as a background service. Starts automatically on boot. No GUI, no tray icons — perfect for cloud boxes and CI runners.

Install

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.

$ curl -fsSL https://freevpnapp.org/install.sh | sh

Detects macOS or Linux automatically. The command above installs everything you need; you'll be asked for your password once so the background service can register itself.

First time on a Mac? Show me the 3 steps
  1. Open Terminal (⌘-Space, type “Terminal”).
  2. Paste the command above → Enter.
  3. Type your Mac password when asked (characters don't show).
First time on Linux? Show me the 3 steps
  1. Open your terminal (Ctrl + Alt + T on most distros).
  2. Paste the command above → Enter.
  3. Type your password when prompted — sudo is needed once.
PS> iex "& { $(iwr https://freevpnapp.org/install.ps1) }"

Runs in PowerShell on Windows 10 or 11. No extra tools needed — PowerShell ships with Windows.  ·  read the script  ·  or download the installer directly

First time on Windows? Show me the 3 steps
  1. Open PowerShell from Start (not Command Prompt).
  2. Paste the command above → Enter.
  3. Click Yes on the Windows security prompt.

Prefer not to use the terminal? Use the direct installer download — double-click once it's downloaded.

$ curl -fsSL -O https://freevpnapp.org/downloads/LATEST/freevpn-linux-amd64.tar.gz curl -fsSL -O https://freevpnapp.org/downloads/LATEST/freevpn-linux-amd64.tar.gz.sha256 shasum -a 256 -c freevpn-linux-amd64.tar.gz.sha256

Every release ships a .sha256 sidecar. The one-line installer runs the same check before it unpacks.

1
Connect.
freevpn up
2
Check your exit.
freevpn status
3
Diagnose anything.
freevpn doctor
4
Add the window.
freevpn gui install
Features

Built 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 up picks the nearest pool by default and flips the switch in under a second on a warm daemon.
JSON everywhere
Every command accepts --json and returns a stable schema. Pipe it to jq, parse it in Python, hand it to an agent.
Agent-native
Ships with a SKILL.md your 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 regions lists every exit. Select by label ("US East") or slug (us-east), or just stay on Fastest auto.
Encrypted end-to-end
AES-256-GCM tunnels with 1.1.1.1 DNS by default. No browsing logs, no DNS logs, no traffic inspection — same network as the Free VPN mobile apps.
Built-in doctor
freevpn doctor self-diagnoses DNS, routes, controller, license, and egress. --email drafts a support email with the JSON report attached.
Ad Block

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.
$ freevpn adblock on
Ad Block : On
Rules : Ready
 
$ freevpn status
VPN : Connected
Ad Block : On
# update anytime: freevpn adblock update
$freevpn adblock stats

Ad Block stats — this session

Blocked 1,358 requests (395 unique hosts) Allowed 264 requests (128 unique hosts) Block rate 83.7% (1,358 / 1,622)
DNS DoH Server595 DNS Domain491 DNS Host272
doubleclick.net 242
googletagmanager.com 159
google-analytics.com 98
googlesyndication.com 76
facebook.com/tr 54
scorecardresearch.com 47
adnxs.com 38
taboola.com 32
criteo.com 28
outbrain.com 21

… 385 more — see them all with freevpn adblock stats blocked, or wipe counters with freevpn adblock stats reset.

Agent Skill

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.

Works with
Claude Cursor Codex OpenClaw Hermes + any MCP tool
How it works

up. status. down.

Three verbs cover 99% of what you'll ever type. set-region and doctor cover the other 1%.

1 Check where you are · connect
freevpn status · up
user@mbp $ freevpn status
VPN : disconnected
region : Fastest (auto → Europe)
your IP : 122.179.8.116
location : Bengaluru, Karnataka, India
license : paid
 
user@mbp $ freevpn up
Connected to Fastest (auto → Europe)
your IP : 85.195.125.198
location: Frankfurt am Main, Hesse, Germany
user@mbp $
2 Switch region · verify
freevpn set-region · status
user@mbp $ freevpn set-region "US East"
Switched to US East
 
user@mbp $ freevpn status
VPN : connected
region : US East
your IP : 23.108.55.113
location : Miami, Florida, United States
license : paid
 
user@mbp $ freevpn down
tunnel down · routes restored
user@mbp $
Built for

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.

Pricing

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.

Always free

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.
Install free

Need the VPN running non-stop?

The paid plans below remove the 30-min session limit — nothing else changes.

Weekly
$7.99/wk

Unlimited time, billed weekly. Cancel in one click from the billing portal.

Get unlimited
Monthly
$21.99/mo

Unlimited time, billed monthly. Swap plans any time from freevpn manage.

Get unlimited
Payments handled by Stripe Cancel anytime No email required for billing
FAQ

Common questions

Is the CLI really free? What's the catch?
Yes, it's truly free — forever. No signup, no email, no credit card. You can install it, run 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?
Same underlying network and server fleet. Different UX. The Free VPN consumer apps are the #1 free VPN on iOS, Android, and Mac — ad-supported, tap-and-go. The CLI is built for people who live in a terminal: scriptable, JSON-first, agent-friendly, no tray, no pop-ups.
How do I give the CLI to my AI agent?
Download SKILL.md from this page and drop it into your agent's skills folder — ~/.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?
Yes — that's the whole point. Every command accepts --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?
Yes. On Linux the CLI parses /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?
No — only 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?
macOS 12+ (Intel and Apple Silicon), Linux, and Windows 10 (1809+) / Windows 11. Any Linux distro with glibc 2.35 or newer works — tested on Ubuntu 22.04/24.04, Debian 12, Fedora 38+, Arch, Raspberry Pi OS, and Oracle Cloud ARM.
How does install work on macOS if I never use Terminal?
Open Terminal (Applications -> Utilities -> Terminal), paste 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?
Open PowerShell (not cmd) and paste the one-liner from the Windows tab in the install section above: 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?
No username, no password. We see a device ID (generated locally, never tied to you), your Stripe customer ID from payment, and standard VPN flow metadata. No browsing logs, no DNS logs, no traffic inspection — the tunnel is encrypted end-to-end with AES-256-GCM.
Is the CLI open source?
The CLI wraps a closed-source VPN core (the same one powering our mobile apps, hand-rolled C, field-tested for 10+ years). The Go wrapper, the installer, and 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.

$ curl -fsSL https://freevpnapp.org/install.sh | sh
$0 forever · no signup · no card