Need help with clashX?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

yichengchen
14.0K Stars 1.9K Forks GNU Affero General Public License v3.0 745 Commits 32 Opened issues

Services available

!
?

Need anything else?

Contributors list

Clash
ClashX

A rule based proxy For Mac base on Clash.

ClashX 旨在提供一个简单轻量化的代理客户端,如果需要更多的定制化,可以考虑使用 CFW Mac 版

Features

  • HTTP/HTTPS and SOCKS protocol
  • Surge like configuration
  • GeoIP rule support
  • Support Vmess/Shadowsocks/Socks5/Trojan
  • Support for Netfilter TCP redirect

Install

You can download from Release page

Download ClashX Pro With enhanced mode and Native Apple Silicon support at AppCenter for free permanently.

Build

  • Make sure have python3 and golang installed in your computer.

  • Install Golang ``` brew install golang

or download from https://golang.org ```

  • Download deps

    bash install_dependency.sh
    
  • Build and run.

Config

The default configuration directory is

$HOME/.config/clash

The default name of the configuration file is

config.yaml
. You can use your custom config name and switch config in menu
Config
section.

Checkout Clash or SS-Rule-Snippet for Clash or lancellc's gitbook for more detail.

Advance Config

Change the ports of ClashX

Please modify the

config.yaml
file generated by ClashX, not the other config file you created or downloaded. The
General
section settings in your custom config file would be ignored. Then relaunch ClashX to apply changes.

Change your status menu icon

Place your icon file in the

~/.config/clash/menuImage.png
then restart ClashX

Change default system ignore list.

  • Download sample plist in the Here and place in the
  ~/.config/clash/proxyIgnoreList.plist
  • Edit the
    proxyIgnoreList.plist
    to set up your own proxy ignore list

Use url scheme to import remote config.

  • Using url scheme describe below
  clash://install-config?url=http%3A%2F%2Fexample.com&name=example

Get process name

You can add the follow config in your config file, and set your proxy mode to rule. Then open the log via help menu in ClashX.

script:
  code: |
    def main(ctx, metadata):
      # Log ProcessName
      ctx.log('Process Name: ' + ctx.resolve_process_name(metadata))
      return 'DIRECT'

FAQ

  • Q: How to get shell command with external IP?
    A: Click the clashX menu icon and then press
    Option-Command-C

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.