Installation

The filtering network extension must have unique name to avoid the conflicts with other software.

  • Rename the project names in Xcode project. The given bundle name for network extension target is used during API initialization in nf_init. The name must be unique for each project, because the extension doesn’t allow multiple attached processes.

  • Sign the extension with automatic signing option in Xcode for development, or manually for distribution. See the Signing the network extension section for the details about signing the network extensions.

  • Install the extension by starting the installer application with contained network extension. When a popup window occurs with a message ‘“installer application name” would like to use a new network extension’, press the button “Open System Settings”, enable the displayed extension, then allow adding the proxy configuration. The extension files are installed automatically to /Library/SystemExtensions. By default the extension is loaded and enabled automatically during OS start without additional popups. The installer application must remain on disk.

  • To unregister the extension call <installer application>/Contents/MacOS/<installer name> -unregister. The extension files are deleted automatically after reboot.

It is possible to unload and restart the extension dynamically in system settings (General | Login Items & Extensions).

To update the extension run the installer with empty arguments.

Supported platforms:

MacOS 15.6 or higher, x64/ARM64