# Free VPN CLI — terminal VPN + desktop app for macOS, Linux & Windows

> A real VPN. For your terminal. Truly free — no signup, no email, no credit card. Install in one line, connect in one command.

**Free VPN CLI** is the command-line edition of Free VPN: scriptable, agent-friendly, reliable over SSH, and perfect for servers. Same VPN engine, same network, same zero-data-collection guarantee as the mobile apps — just no GUI in the way.

## Install — one line

**macOS / Linux**

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

**Windows (PowerShell)**

```powershell
iex "& { $(iwr https://freevpnapp.org/install.ps1) }"
```

The installer detects your OS and architecture, verifies the download with a SHA-256 sidecar, and registers a background service that survives reboots. You'll be prompted for your password once so the daemon can install itself.

Prefer GUI installers? Direct `.pkg` / `.msi` / `.deb` / `.rpm` downloads are linked from the [installer scripts](https://freevpnapp.org/install.sh).

## Connect — one command

```bash
freevpn up          # connect, pick fastest pool by default
freevpn status      # check current exit, IP, license
freevpn doctor      # self-diagnose DNS, routes, license, egress
freevpn gui install # optional: add a desktop window
```

## Platforms

| Platform | Versions |
| --- | --- |
| **macOS** | 12 Monterey or newer · Intel + Apple Silicon (M1/M2/M3/M4) |
| **Linux** | Ubuntu 22.04+, Debian 12, Fedora, Arch, Raspberry Pi, AWS / Hetzner / DO VMs |
| **Windows** | Windows 10 (Oct 2018 update) and Windows 11 — `.msi` available |
| **Servers** | Linux / macOS / Windows · runs as a background service, no GUI required |

Same binary family as the iOS/Android/Mac App Store apps. Same VPN core, battle-tested for 10+ years across 100M+ installs.

## Features

### Built the way a CLI should work

- **Instant connect** — `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. One small native binary built on the VPN engine that's shipped for a decade.
- **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 managed by your OS the same way Docker is.
- **Pick any region** — `freevpn regions` lists every exit. Select by label (`"US East"`) or slug (`us-east`), or stay on `Fastest` auto.
- **End-to-end encrypted** — AES-256-GCM tunnels, 1.1.1.1 DNS by default, no browsing logs, no DNS logs.
- **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 trackers before apps load them

Turn Ad Block on 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.

```bash
freevpn adblock on
freevpn adblock update
freevpn adblock stats     # session totals + top blocked hosts
```

Block list comes from the same rule family as the Free VPN mobile apps, refreshed from our content network. Top blocked hosts in a typical session: `doubleclick.net`, `googletagmanager.com`, `google-analytics.com`, `facebook.com/tr`, `scorecardresearch.com`, `adnxs.com`, `taboola.com`, `criteo.com`, `outbrain.com`.

### Agent Skill — `SKILL.md`

Free VPN ships with a `SKILL.md` file documenting every command, JSON schema, exit code, and troubleshooting recipe. Drop it into your agent's skills folder (Claude Code, Cursor, Codex, OpenClaw, etc.) and the agent can drive the VPN on your behalf — bring it up, switch regions, check status, diagnose issues — all without leaving the conversation.

## Optional desktop app

Prefer a window? Keep the CLI and add the app:

```bash
freevpn gui install      # one command, installs the companion app
freevpn gui              # open it
freevpn gui uninstall    # remove just the window — CLI stays
```

The desktop app is a companion for everyday use: status, connect, regions, Ad Block, billing, and update checks in one clean window. It talks to the same daemon as the CLI.

## Verify your install

Every release ships a `.sha256` sidecar. The one-line installer runs the check before it unpacks. You can verify manually:

```bash
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
```

## Pricing

**Free forever — $0.** Optional paid upgrade unlocks premium servers and removes in-app ads. Free plan has unlimited bandwidth, all features, and zero data collection.

## Related pages

- [Home](https://freevpnapp.org/) — Free VPN overview
- [Downloads](https://freevpnapp.org/downloads/) — mobile + desktop installers
- [FAQ](https://freevpnapp.org/faq/) — common questions
- [Contact](https://freevpnapp.org/contact/) — support@freevpnapp.org

---

*This is the markdown twin of [https://freevpnapp.org/cli/](https://freevpnapp.org/cli/), served under the [AEO Spec v1.0](https://dualmark.dev/docs/spec/overview) for AI agents and LLM-powered search.*
