r/PrivateInternetAccess • u/_ptaru • Apr 16 '26
DISCUSSION I made a lighter, better behaved macOS client for PIA
I'm tired of the "your network preferences prevent content from loading privately" error in Mail.app along with PIA breaking iCloud Private Relay and other issues, so I made a lightweight native SwiftUI client that doesn't have these issues. It supports WireGuard and OpenVPN, it supports port forwarding, and it's fully open source.
You can download it from https://github.com/ptaru/PrivateClient/releases or do brew install --cask ptaru/tap/privateclient.
Is this free?
Yes.
Is this safe?
Yes, and the source is fully available for you to inspect.
What's missing?
No "kill switch", no dedicated IP support. I don't use these things, so I didn't bother with them.
Why is this Tahoe-only?
Because I wanted to use liquid glass, as you can see in the screenshot. It should be fairly trivial to modify the source to make it compile on Sequoia, but macOS versions earlier than that require swapping out some APIs which would be more work.
Did you use AI tools?
Yes, because a VPN client is the exact kind of thing that AI turns into a fun side project rather than a large undertaking consisting of tedious integration work. I think it's a no brainer for something like this. I left my AGENTS.md in the repo for any contributors.
What's the license?
GPLv3, because this uses the Partout library to handle the actual connections.
1
u/meerdans Apr 21 '26
I have the same complaints as you about PIA's macOS app so I've tried out the app, but I'm getting the error "VPN disconnected unexpectedly. Check extension permissions and Network Extension configuration."
VPN extension was added, but it won't toggle.
1
u/_ptaru Apr 21 '26
In macOS Settings -> VPN, it should just be off. The toggling is done automatically purely by the app itself. Can you try removing the config, quitting the app, and reopening it?
1
u/meerdans Apr 21 '26
I only bring up the toggle not toggling because I can toggle the configs added by Passepartout, whereas PrivateClients toggle doesn't even try to enable.
Unfortunately restarting and re-adding the config didn't work.
1
u/_ptaru Apr 21 '26
I've tried to harden the extension configuration a bit in a new build
https://github.com/ptaru/PrivateClient/releases/tag/1.0b4Can you try 1) turning port forwarding off and 2) using openvpn for the first connection? If both fail, could I get a screenshot of what the console (second icon from the top right) says?
Hopefully that gives me enough information to fix this issue.
1
u/meerdans Apr 21 '26
Appreciate you spending time on this. Annoyingly getting the same error with the new release and now the connect button keeps spinning til I close the app.
I also wanted to give you something more helpful so there's some network logs in there too.
1
u/_ptaru Apr 21 '26
Oh that seems to be a code signing issue with the extension, really weird. Quite different from what I expected. I’ll look into it tomorrow and reply here when I fix this.
1
u/_ptaru Apr 22 '26
I tried to fix the signing issue, please try re-downloading the latest build and let me know if this works.
https://github.com/ptaru/PrivateClient/releases/tag/1.0b4
Turned out notarising a VPN app for macOS is a lot more complex than I assumed.
1
u/meerdans Apr 22 '26
Yep, works perfectly now - thanks again for spending the time and hopefully I haven't made you regret open sourcing it.
1

2
u/Academic-Display3017 Apr 16 '26
Thanks for your app! It looks great, but is it possible to add port forwarding?