macOS Clash Client Permissions: Network Extensions and Keychain Prompts
Fix macOS “can’t be opened” alerts, approve network extensions and system proxy access, and stop recurring Keychain password prompts with clear, step-by-step settings guidance.
First, identify the four prompt types: app launch, proxy, extension, and Keychain
When you install a Clash client on a Mac, macOS may block the app from launching, ask whether it can change your network settings, and then show a password prompt. These requests involve different permissions, so repeatedly entering the same password won’t solve the problem. Check the prompt title, requesting process, and explanation before deciding what to do next.
Clash refers to a core and configuration ecosystem; it doesn’t mean every GUI client uses the same implementation. Clients powered by mihomo may create a TUN interface using a privileged helper or use a system network extension. If you only enable the system proxy, TUN is usually unnecessary. The settings paths below use macOS 13 Ventura, 14 Sonoma, and 15 Sequoia as references. The options you see depend on your macOS version and the client’s implementation.
| Prompt | What it relates to | What to check first |
|---|---|---|
| “Unable to verify developer” or “Apple cannot check it for malicious software” | App launch check | Download source, app signature, and security settings |
| “Wants to make changes” or “install helper tool” | Administrator authorization | Requester name and whether you just installed a helper or enabled the proxy |
| “Add VPN Configuration” or “System Extension Blocked” | Network configuration or extension approval | The network routing method the client actually uses |
| “Wants to access confidential information stored in your keychain” | Credential access | Requesting app, Keychain name, and item being accessed |
Install and open the app: resolve “can’t be opened” alerts
Move the app to Applications first
- Open About This Mac from the Apple menu to check your chip or processor. Choose an ARM64 / Apple Silicon installer for an Apple silicon Mac, or an x64 / Intel installer for an Intel Mac.
- Open the downloaded disk image and drag the client into Applications. If you’ve installed a client with the same name before, quit the old instance normally, then replace it according to the project’s instructions.
- Launch the client from Finder → Applications. Don’t keep running it from Downloads or from a read-only disk image.
- Once you’ve confirmed the app launches correctly, eject the installer disk image. Approve Keychain access and check helper tools for the app in its permanent install location.
Choosing the wrong architecture typically means the app won’t run, asks you to install Rosetta, or the installer reports it’s incompatible. That’s separate from network extension permissions. If the client doesn’t offer a build for your Mac’s architecture, check its supported platforms rather than treating macOS security settings as a compatibility fix.
Use “Open Anyway” in Security settings
If macOS says it can’t verify the developer, first confirm the installer came from the project’s official release channel and check the app name in the alert. If the source is trusted, go to System Settings → Privacy & Security and look under Security for a record of the blocked app and an Open Anyway button. Authenticate when prompted, then launch the app again. The button usually appears only after you try to open the app, and may be available for a limited time.
macOS 15 is stricter about opening software that isn’t properly signed or notarized. Don’t assume the old “right-click to open” instructions apply to every version. If an alert explicitly says the app will damage your computer or contains malware, stop and verify the source. “The app is damaged” doesn’t necessarily mean it just needs permission.
Don’t disable Gatekeeper or SIP system-wide, or run commands to remove quarantine attributes in bulk just to use one client. These steps affect more than the app and can hide problems with the installer itself. If a managed Mac won’t allow the app to open, ask your administrator to check the policy.
System proxy access: get browser traffic working first
For your first setup, leave TUN off and enable only the client’s System Proxy option. This usually adds HTTP and HTTPS proxy settings to the active network service. Some clients ask for administrator access or install a helper to make these system changes. Follow the options shown by your client; its “service mode” isn’t necessarily a network extension.
- Import a working configuration, confirm the core is running, and select an available node in a proxy group.
- Check the actual listening port in your configuration. For example, with
mixed-port: 7890, HTTP and SOCKS can share the same port. Don’t assume every client uses 7890 by default. - Enable System Proxy. If macOS asks for administrator authentication, verify the request comes from the client you just used or its helper before approving it.
- Go to System Settings → Network → your active Wi-Fi or Ethernet connection → Details → Proxies. Check the address and port for each enabled proxy.
A standard local proxy usually uses 127.0.0.1. If your configuration uses port 7890 but System Settings still points to an old client on 7897, the browser may not connect even if the client says it’s connected. Don’t enter a different port for Secure Web Proxy (HTTPS); use the settings the client actually applied.
Use read-only commands to check settings without changing them
scutil --proxy
lsof -nP -iTCP:7890 -sTCP:LISTEN
The first command displays your current system proxy settings. Check HTTPEnable, HTTPProxy, HTTPPort, and the corresponding HTTPS values. The second checks whether a process is listening on local port 7890. If your client uses a different port, change the number in the command first. If there’s no output, check that the core is running and the port is configured correctly; don’t immediately reinstall the network extension.
The system proxy doesn’t route traffic from every app on your device. Some command-line tools, games, and apps that open their own connections ignore these settings. If a browser works but another app connects directly, that alone doesn’t mean authorization failed.
Network extensions and TUN: approve access based on the client’s implementation
TUN uses a virtual network interface to route traffic, often for apps that don’t follow the system proxy. It doesn’t mean you must install a particular network extension. On macOS, mihomo can use the required permissions to create a virtual interface. GUI clients may manage routes and DNS through a privileged helper, while others use Apple’s Network Extension APIs.
When you see a network extension or VPN configuration prompt
- macOS 15: Go to System Settings → General → Login Items & Extensions, then look for Network Extensions under Extensions. The corresponding item appears only if the app registered an extension.
- macOS 13 / 14: If macOS says an extension was blocked, go to System Settings → Privacy & Security and check for an option to allow the extension from that developer. Not all network extensions use this approval flow.
- Add VPN Configuration: Approve only if you just enabled a related feature in this client and the name and source match. After approval, look under VPN in System Settings or at VPN & Filters under Network. The location varies by macOS version and installed items.
If the client only asks you to install or repair a service and no network extension appears in System Settings, check the client’s helper-service documentation first. Don’t approve an extension belonging to another app. A TUN interface may not appear under the client’s name in the regular list of network services, and seeing an interface doesn’t prove traffic is routed correctly.
How to verify TUN after enabling it
- Keep your working configuration and note the current system proxy and TUN settings.
- Enable TUN by itself, then check the client logs for permission errors, interface creation failures, or route errors.
- Test your browser and an app that didn’t use the system proxy before, then check the client’s connection log.
- If you lose connectivity, turn TUN off first and check whether the network recovers. Then investigate route, DNS, or other VPN conflicts.
Recurring Keychain prompts: check who’s requesting access and which password it needs
Keychain stores credentials, keys, and other information. Some clients store subscription credentials or other sensitive data there, but not every Clash client does. If macOS repeatedly asks whether to allow access, check the requesting app, item name, and Keychain name. Don’t choose Always Allow just because the prompt mentions Clash.
Case 1: The prompt appears only the first time an item is accessed
If the app named in the prompt is the client you installed and are currently using, and the item makes sense, enter that Keychain’s password and choose Allow. Allow typically grants access for this request only; Always Allow saves access for that app to the item. Use the latter only after confirming the requester’s identity, and never grant ongoing access to an unfamiliar process.
Case 2: Your login password unlocks your Mac but not your Keychain
This often happens after an account password is reset through recovery or another management process. The “login” Keychain still uses the old password, while your account has the new one. Repeatedly entering the new login password won’t sync the two.
- Press
Command + Space, search for and open Keychain Access. Don’t open the Passwords app by mistake. - Select the “login” Keychain in the sidebar and try to unlock it. If you remember the old password, first check whether it unlocks this Keychain.
- If your macOS version offers Edit → Change Password for Keychain “login”, authenticate with the old Keychain password, then change it to your current account password. Menu names may vary slightly by macOS version.
- If you can’t recover the old password, consider how to restore the saved credentials first, then follow Apple’s instructions for resetting the default Keychain on your macOS version.
Resetting a Keychain isn’t the same as clearing a cache. Items in the old Keychain that you can’t unlock won’t become readable again, and you may need to re-enter saved website, network, or app credentials. On a work Mac, contact your administrator first. Don’t delete the entire Keychain folder to see what happens.
Case 3: The prompt appears every time you launch after an app update
An update, a change in signing identity, multiple copies of the app, or access controls on an older item can trigger another prompt. First quit all similar clients and launch the single copy you’re keeping from Applications. Then use Keychain Access to search for the exact item name shown in the prompt.
Open the item details and, if there’s an Access Control tab, check whether the allowed app matches the version you installed. Don’t allow all apps unrestricted access. If you’re sure the current client created the item and can restore the credentials, back up the client configuration first, then follow the project’s instructions to remove only that old item and sign in again. Don’t delete search results in bulk or remove certificates or private keys you don’t recognize.
Recurring administrator prompts aren’t necessarily a Keychain issue
“An app wants to make changes” and “access confidential information in your Keychain” are different types of prompts. If the first appears every time you enable the system proxy, start the core, or turn on TUN, check whether the client needs temporary elevated privileges and whether its helper service installed correctly. Changing Keychain items won’t fix a system service.
- Keep the app in one location: Make sure you aren’t launching it from a disk image, Downloads, or another older copy.
- Use the client’s own tools: If it offers Install Service, Repair Service, or Uninstall Service, follow the project’s instructions. Don’t copy helper tools from another client.
- Check background items: Go to System Settings → General → Login Items (Login Items & Extensions in macOS 15) and check whether the relevant background item is disabled. Change only items you can identify.
- Check your account permissions: Standard accounts may need administrator authentication to change system settings. If device management policies prevent the change, ask your administrator.
Some clients are designed to request administrator approval for specific actions. Installing a service doesn’t guarantee that every password prompt will disappear. Check whether each request matches the action, the service works, and the network is stable—not whether prompts have stopped entirely.
Post-install checks and rollback
After approving the required permissions, follow these checks to distinguish system settings issues from subscription or node problems. Change one thing at a time and test before continuing. If something fails, you’ll know which step introduced the change.
- Test the connection without a proxy: Turn off the system proxy and TUN before quitting the client, then confirm your regular network works.
- Test the system proxy alone: Start the client, import your configuration, and select a policy. Check that the listening and system proxy ports match, then visit a site that requires a proxy.
- Check connection logs: Confirm the request reached the client and check the matched rule and proxy group. If your configuration uses a DIRECT rule, a logged connection doesn’t mean it went through a proxy node.
- Enable TUN only if needed: Turn it on only for apps that require it, then check route and DNS logs. Don’t change multiple VPNs, network filters, or DNS tools at the same time.
- Verify after restarting: Quit the client normally and reopen it. Check that there aren’t multiple instances and that the same item isn’t repeatedly requesting Keychain access.
If you still can’t connect after quitting the client, open the Proxies page for your current network and check for leftover settings pointing to 127.0.0.1. Without a process listening locally, these settings may leave your browser trying to reach a proxy that isn’t running. Remove only settings added during this setup; keep your organization’s existing automatic proxy and other managed settings.
If you need more help, note your full macOS version, chip type, client name and version, steps to reproduce the issue, and the exact prompt text. Include only the relevant part of the logs and redact subscription URLs, authentication fields, and personal information. See the client downloads page for installers and the quick start guide for setup steps. For port and TUN settings, also refer to the configuration reference.