A real VPN.
For your terminal.
Scriptable. Agent-friendly. Headless-ready. Single-binary install, JSON output everywhere, runs as a proper system daemon. macOS, Linux amd64 and Linux arm64.
Zero-bloat
Single binary
JSON output
Built for scripts
Agent-ready
SKILL.md included
Runs where your work already lives
Native single-binary builds for every platform a serious developer actually uses. No Electron, no bundled runtime, no surprises.
macOS 12 Monterey and later. Installs a launchd service and registers the TUN device automatically.
Ubuntu 22.04+, Debian 12+, Fedora 38+, Arch, and anything with glibc 2.35 or newer.
Raspberry Pi 4/5, Oracle Cloud ARM, AWS Graviton, Apple Silicon VMs under Parallels or UTM.
Runs as a proper daemon on both OSes. Bring-up survives reboots. No GUI, no tray icon, no nonsense.
Two lines and you're connected
The installer detects your OS and CPU architecture, downloads the right tarball, verifies its SHA-256 checksum, and installs the system service. No curl | sudo bash bait-and-switch — read the script before you run it.
Built the way a CLI should work
We wrote this for ourselves first — the engineers, the ops folks, the agents, the indie-hackers. Every feature is here because not having it would have annoyed us.
One command. Single-digit-ms setup. The daemon is already warm; freevpn up just flips the switch.
Every command has a --json mode. Parse it, pipe it, feed it to jq, hand it to an agent — it's all structured.
Ships with a SKILL.md file your AI agent can read. Claude, Cursor, Codex — they all know how to drive it.
No Electron, no Node, no Python runtime. A single ~15 MB Go binary, statically linked against a hand-rolled C core.
Detects active SSH sessions and pins their peer IPs via the original gateway. freevpn up on a remote box won't drop you.
systemd on Linux, launchd on macOS. Survives reboots. Logs to the journal like a proper citizen.
The same global network as the Free VPN mobile apps — now pickable by slug: us-east, eu-zurich, sg…
No email. No password. A device ID is your identity; your Stripe subscription is your license. Lose the box? Recover by email.
freevpn doctorOne command runs a full self-diagnosis: DNS, routing, controller reachability, license state. Copy-paste the output to support.
Three commands. That's the whole product.
Install once. Unlock the device once. Then it's up and
down from then on.
Actual screenshots, actual terminals
No marketing mockups. Every image here is a real terminal on a real machine running the real build.
If any of this sounds like your day
AI agents & coding copilots
Ship SKILL.md to Claude, Cursor, or Codex and they can drive the tunnel themselves — connect, switch region, verify IP, disconnect.
Headless servers & CI runners
Pin a GitHub Actions runner, a VPS scraper, or a staging box behind a specific exit. systemd unit ships in the box.
Power users on macOS & Linux
You live in your terminal. Your VPN should too. Bind it to a hotkey, put a region in your shell prompt, pipe --json into jq.
Journalists, researchers, remote workers
Privacy at the command line. Switch exits per task. Never see a login screen. Works identically on a MacBook and a Raspberry Pi.
Fair, no tricks
The CLI is a paid product — you're supporting independent privacy software, not a data broker. Prices in USD. Cancel from the Stripe billing portal any time, the very same day.
Payments handled by Stripe · Cancel anytime · No email required for billing
Common questions
Is the CLI free, or do I need a subscription?
freevpn doctor, freevpn status, and
browse regions — but to bring a tunnel up with
freevpn up you need an active subscription. Pricing
is right above this FAQ.
How is this different from the mobile / Mac app?
What CPU architectures and distros are supported?
Is it safe to run freevpn up on a server I'm SSHed into?
/proc/net/tcp and pins each remote peer IP via the
original default gateway before re-routing the default route
through the tunnel. Your SSH session won't drop.
How do I give the CLI to my AI agent?
freevpn skill to print the
SKILL.md
to stdout — or drop a copy of it into your agent's skills folder.
It documents every command, flag, JSON schema and common recipe
the agent needs.
I lost my laptop / wiped the disk. Can I recover my subscription?
freevpn login --recover
and enter your billing email. We'll mail a 6-digit code; typing
it in transfers your Stripe subscription to the new device ID.
Old device loses access on its next refresh.
What data do you collect?
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 on.