macOS System Proxy · YAML Configuration Reference

Clash for Mac
macOS Client

From system proxy setup to rule-based routing, choose a client for your Mac chip and follow the YAML configuration and TUN setup steps.

  • Open-Source Ecosystem
  • Chinese Documentation
  • Local Configuration

Proxy Routing and Configuration Controls

Available features depend on the client and its core. Setting names may vary by interface.

A system proxy directs a network service’s HTTP, HTTPS, and SOCKS traffic to a local listening port—an easy way to get a browser using Clash. Import a configuration and start the core before enabling the client’s system proxy; the port must match the active configuration. Safari generally uses system settings, while command-line tools may need a proxy specified separately. Unlike TUN, a system proxy relies on apps honoring proxy settings: it does not capture every process or choose the final route for each app.

config.yaml · Listening Port

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info

macOS Network Settings

Web Proxy (HTTP)Enabled
Secure Web Proxy (HTTPS)Enabled
SOCKS ProxyEnable as needed

Get Started with Clash for Mac

Start with a standard system proxy connection, then add TUN or overrides only if your apps need them. This makes it easier to track what each change does.

Read the Full Guide →
01 / Install

Check Your Chip and macOS Requirements

Open About This Mac from the Apple menu to check your chip or processor. Apple Silicon and Intel require different builds. Then check the client’s minimum macOS version on the download page. Move the app to Applications before launching it instead of running it from the disk image.

02 / Configure

Import a Configuration and Choose an Outbound

Use a subscription URL or local YAML file from a source you trust. After importing it, make sure it’s selected and choose an outbound in the proxy group. The client and configuration source are separate: installing an app does not provide working remote nodes or a network service.

03 / Verify

Enable the System Proxy and Check the Connection

Once the core is running, enable the system proxy and test the sites you need in a browser. Then check the connection log for the destination, matched rule, and proxy group. If the browser works but the terminal doesn’t, first check whether the terminal needs a proxy configured separately. Don’t assume the node is at fault or reinstall the client right away.

For your first connection, use just one traffic-capture method. If another VPN or proxy tool is running, note what it’s used for and pause it while testing to prevent the two apps from changing routes or DNS. When you’re done, quit the client normally and confirm the system proxy has been restored. See the guide for authorization steps and recovery instructions.

Clash Downloads for Multiple Platforms

Choose an operating system to browse available clients. Find installers, architectures, and system requirements on the downloads page.

Browse All Clients →

Similar configuration syntax does not mean every feature works the same across devices. Check which core a client uses, then confirm support for your protocols, rule-set formats, and DNS fields. macOS system proxy controls, VPN permissions on mobile, and service installation on desktop are platform-specific ways to capture traffic—don’t assume the steps on one device apply to another. Even if you share a subscription, keep local ports, file paths, and interface preferences specific to each device.

macOS

Choose a build for Apple Silicon or Intel, then compare how Clash Plus, Clash Verge Rev, and FlClash manage configurations. For menu bar controls or TUN, check the implementation and service permissions for each client; don’t assume an option in one app is available in every Mac client.

Go to Downloads macOS client

Windows

Compare GUI clients such as Clash Plus and Clash Verge Rev, and check their macOS and architecture requirements. Looking for a Clash for Windows alternative? Back up your subscription and local rules before migrating. If a Store app has loopback access issues, see the Windows-specific notes in the guide.

Go to Downloads Windows client

Android

Choose an installer for your device’s processor architecture, and read the system VPN permission prompt when setting up your first connection. Mobile background restrictions can interrupt a connection. After switching networks, check DNS resolution and connection status again; desktop system proxy troubleshooting may not apply.

Go to Downloads Android client

iOS

The downloads page links to Clash Plus on the App Store and lists its official site, clashplus.io. After importing a configuration, follow the system prompt to add a VPN configuration and test the apps you need. Before sharing a subscription with your Mac, make sure the mobile client supports its protocols and fields, and keep each device’s local settings separate.

Go to Downloads iOS client

Linux

On desktop Linux, choose Clash Verge Rev or FlClash and check the package format for your distribution. Server and router users can find mihomo in the core section. Running the core alone means managing configuration directories, processes, and network permissions yourself; there’s no desktop menu to handle traffic capture.

Go to Downloads Linux client

Check Your Configuration Before Downloading

Ports and traffic capture. The pop-up on this page shows the local proxy endpoint, not a remote node address. If your client uses a different port, update macOS network settings and command-line arguments too. Changing the port in YAML without reloading the configuration may leave the running process on the old value. Check the logs and active listener before testing requests.

Subscriptions and local changes. Subscription URLs may contain credentials, so treat them as sensitive information. Don’t include them in public screenshots or repositories. When switching clients, export local rules and overrides first, then import the subscription again. Copying the entire app data directory can also bring along outdated paths, caches, and incompatible interface settings.

What Else Do I Need After Installation?
You’ll need a working configuration source and a protocol supported by the client’s core. Import the configuration, choose an outbound in the proxy group, and then enable traffic capture. See the setup guide for the recommended order.
Why Does the Terminal Fail When the Browser Works?
Terminal tools may not use the macOS system proxy. Check the tool’s own proxy options or environment variables. If you need to capture more traffic, consider TUN mode and confirm its service permissions and routing.
How Should I Verify Rule Changes?
Reload the configuration, start a new connection, and check the matched rule and actual proxy group. Existing connections may continue using their previous route. See the rule syntax reference for field details and ordering.
Open-Source Projects and Local Configuration

Clash, mihomo, and GUI Clients

Read the YAML Guide →

The Clash ecosystem isn’t a single app with one standard interface. The core parses configuration, applies rules, and establishes connections. The GUI client manages subscriptions, system proxy controls, menu bar features, and updates. Understanding this split helps distinguish a missing interface option from an unsupported configuration field or traffic capture that isn’t working—without repeated reinstalls or guesswork.

Project History and Compatibility

After the original Clash project stopped receiving updates, the community continued developing forked cores and GUI clients. mihomo follows the technical lineage of the Clash Meta branch, retaining many familiar configuration fields while adding its own capabilities. Being able to parse an older configuration doesn’t mean an older core supports every newer protocol, rule-set format, or DNS option. If parsing fails, first check the name of the core actually running, then consult its documentation—not just the app icon or installer name.

Older guides may also refer to menu labels or permission steps that have changed. Focus on the goal—such as opening proxy settings for the active network service or checking the final runtime configuration—then find the equivalent in your client. Archived clients can help explain legacy configurations, but choose software based on current OS compatibility and project documentation, not screenshots of an old interface.

Core Capabilities and Client Features

Even clients built on mihomo may differ in their override systems, subscription updates, and system service setup. Core support for a field doesn’t guarantee the GUI has a matching control; a TUN toggle in the interface doesn’t mean service permissions are already in place. Troubleshoot in layers: confirm the configuration was generated, check that the core started, then verify the operating system is sending traffic to the right endpoint. This is easier to reproduce than changing several switches at once.

The YAML snippets on this page show where fields go; they are not complete subscriptions you can use to connect. A working configuration also needs nodes, proxy groups, and rules suited to your needs. Before merging an example into an existing file, check indentation and field hierarchy to avoid duplicate top-level keys. Use the client’s configuration checker, reload the runtime configuration, and keep a backup so you can revert.

Source Code and Documentation

Use mihomo’s source code and documentation to check what configuration fields do, platform limitations, and change history. Distinguish the core repository from GUI client repositories: consult core docs for proxy protocols, rule matching, and DNS behavior; consult the relevant client docs for subscriptions, menu bar controls, and service installation. Public code makes implementation easier to trace, but doesn’t replace checking your configuration source and local permissions.

When reporting an issue, include relevant system details, the core type, and a minimal reproducible configuration. Logs may contain domains, subscription URLs, or node details; redact sensitive information before posting publicly. Describe what you did, what you expected, and what happened instead. Avoid uploading your full everyday configuration—this helps maintainers investigate while keeping unrelated details private.

Updates and Configuration Rollback

Client, core, and subscription updates are separate processes. A client update may change configuration management or permission steps; a core update may change how fields work; and a subscription update may replace nodes and rules. Before updating, note your current traffic-capture method and local overrides. Afterward, test the browser, command line, and LAN services separately. Don’t assume that a client launching means every network path works.

If something breaks after an update, compare the final runtime configuration and logs before deciding what to roll back. If a remote subscription overwrote local rules, restoring those rules is simpler than reinstalling the app. For a lingering system proxy, check network service settings. If TUN won’t start, check service permissions and conflicting apps. Change one thing at a time to keep the cause easy to trace.

Get the mihomo Source Code

For reviewing implementation and change history. You don’t need to clone the repository or build the core for a standard installation.

View the Open-Source Repository ↗
git clone https://github.com/MetaCubeX/mihomo.git