Passepartout is a non-official, user-friendly OpenVPN® client for iOS.


Passepartout betas are available for patrons on TestFlight.


All profiles in one place

Passepartout lets you handle multiple profiles in one single place and quickly switch between them.


Ease of use

With its native look & feel, Passepartout focuses on ease of use. It does so by stripping the .ovpn flags that are today obsolete or rarely used. With good approximation, it mimics the most relevant features you will find in OpenVPN 2.4.x.


Trusted networks

Trust cellular or Wi-Fi networks to fine-grain your connectivity. You can then choose to retain a VPN connection when entering a trusted network, or prevent it completely.


See your connection parameters

Passepartout strives for transparency, by showing a fairly detailed yet understandable resume of your connection parameters.


Override network settings

Override default gateway, DNS and proxy settings right from the app. Don't bother editing the .ovpn file or your pushed server settings. This is especially useful if you want to override your provider settings, e.g. to integrate your own DNS-based ad blocking.


Disconnect on sleep

Keeping the VPN active in the background provides smoother operation, but may be tough for the battery. You might want to use this feature if you're concerned about battery life. When the device goes to sleep, the VPN will disconnect to then reconnect on device wake-up.

No unrequested activity

Passepartout is a VPN client and does absolutely nothing else without your consent. The providers infrastructures are obtained via a [static GitHub API][app-api] if and only if you manually refresh them.

Presets for major providers

Passepartout can connect to a few well-known VPN providers with an existing account:

  • [Mullvad][app-net-mullvad]
  • [NordVPN][app-net-nordvpn]
  • [Private Internet Access][app-net-pia]
  • [ProtonVPN][app-net-protonvpn]
  • [TunnelBear][app-net-tunnelbear]
  • [VyprVPN][app-net-vyprvpn]
  • [Windscribe][app-net-windscribe]

In preset mode, you can pick pre-resolved IPv4 endpoints when DNS is problematic.

Import .ovpn profiles

Passepartout can import .ovpn configuration files. This way you can fine-tune encryption without tweaking and reimporting a new configuration.

You can find details on what may or may not work in the related section of the [TunnelKit README][dep-tunnelkit-ovpn].



  • iOS 11.0+
  • Xcode 10+ (Swift 5)
  • Git (preinstalled with Xcode Command Line Tools)
  • Ruby (preinstalled with macOS)
  • [CocoaPods 1.6.0][dep-cocoapods]

It's highly recommended to use the Git and Ruby packages provided by [Homebrew][dep-brew].


Download the app codebase locally:

$ git clone

Assuming you have a [working CocoaPods environment][dep-cocoapods], setting up the app workspace only requires installing the pod dependencies:

$ pod install

After that, open Passepartout.xcworkspace in Xcode and run the Passepartout-iOS target.

For the VPN to work properly, the app requires:

  • App Groups and Keychain Sharing capabilities
  • App IDs with Packet Tunnel entitlements

both in the main app and the tunnel extension target.

Make sure to also update the following constants in Passepartout/Sources/GroupConstants.swift according to your developer account and your target bundle identifiers:

public static let teamId
public static let appId
public static let appGroup
public static let tunnelIdentifier