Skip to main content

Overview

The mullvad status command displays the current state of the VPN tunnel and optionally listens for real-time state changes.

Syntax

mullvad status [OPTIONS] [COMMAND]

Options

OptionDescription
-v, --verboseEnable verbose output
-d, --debugEnable debug output (conflicts with --verbose and --json)
-j, --jsonFormat output as JSON (conflicts with --verbose and --debug)
-h, --helpPrint help information

Subcommands

listen

Listen for tunnel state changes in real-time:
mullvad status listen [OPTIONS]
This command blocks and continuously prints tunnel state updates as they occur.

Output Formats

The status command supports three output formats:
  1. Standard - Human-readable connection status
  2. Verbose (-v) - Includes additional connection details
  3. Debug (-d) - Full debug information about tunnel state
  4. JSON (-j) - Machine-readable JSON format

Tunnel States

The command can report the following tunnel states:
  • Disconnected - Not connected to any relay
  • Connecting - Establishing connection to a relay
  • Connected - Successfully connected to a relay
  • Disconnecting - Terminating connection
  • Error - Connection error occurred

Examples

Basic Status Check

Display current VPN status:
mullvad status
Output:
Connected to se-got-wg-004 in Gothenburg, Sweden

Verbose Status

Show detailed connection information:
mullvad status --verbose
Output:
Connected to se-got-wg-004 in Gothenburg, Sweden
Tunnel protocol: WireGuard
IPv4: 10.64.0.1
IPv6: fc00:bbbb:bbbb:bb01::1

JSON Output

Get status in JSON format for scripting:
mullvad status --json
Output:
{"state":"connected","details":{"location":"Gothenburg, Sweden","relay":"se-got-wg-004"}}

Listen for State Changes

Monitor tunnel state changes in real-time:
mullvad status listen
Output:
Connecting to se-got-wg-004...
Connected to se-got-wg-004 in Gothenburg, Sweden

Listen with JSON Output

Stream state changes as JSON:
mullvad status listen --json

Debug Output

Show full debug information:
mullvad status --debug

Events (Listen Mode)

When using status listen, the command reports the following daemon events:
  • TunnelState - Tunnel connection state changes
  • Settings - Configuration changes
  • RelayList - Relay list updates
  • AppVersionInfo - Version information updates
  • Device - Device-related events
  • RemoveDevice - Device removal events
  • NewAccessMethod - New API access method
  • LeakDetected - Network leak detection

Warnings

The command displays warnings for specific conditions:
  • Not logged in - You’re not logged in to a Mullvad account
  • Device revoked - Your device has been revoked from the account
These warnings appear when the tunnel is connecting, connected, or in an error state.

Exit Status

CodeDescription
0Status retrieved successfully
1Failed to retrieve status or connection error

Source Reference

Implementation: mullvad-cli/src/cmds/status.rs

Build docs developers (and LLMs) love