Skip to content
ClashX-ProPublic

About

ClashX is no longer maintained. Please migrate to ClashFX: https://clashfx.com

Topics

Resources

Stars

796 stars

Watchers

3 watching

Forks

Latest commit

 

History

1,001 Commits

Folders and files

Repository files navigation

Clash
ClashX

Maintenance status

ClashX is no longer maintained. Please migrate to ClashFX.

This repository keeps the existing ClashX source code, releases and historical discussions available for reference. There are no plans for further ClashX feature development, compatibility updates or routine bug fixes. Existing issues and pull requests are not automatically closed or transferred by this notice.

Check ClashFX's system requirements before migrating. Back up your configuration and do not run both clients against the system proxy or TUN at the same time. Migration is not a guarantee that a reported ClashX issue is fixed in ClashFX.

ClashFX's current core features are free to use. ClashFX Pro is in preparation and is not available to purchase. The historical product named ClashX Pro is separate from both standard ClashX and the planned ClashFX Pro.

Legacy downloads and documentation

ClashX is a proxy client and does not provide proxy servers or subscriptions. Contact your provider about server availability or renewals.

Project background

This project is based on code originally created by yichengchen, obtained from bannedbook/ClashX, with subsequent macOS compatibility changes. The original git history was lost when the .git directory was accidentally deleted while recreating the project.

The 1.140.0 source tag already depends on mihomo v1.19.24. Core capabilities do not mean every feature is exposed by this legacy client's interface. This repository is standard ClashX, not the historical ClashX Pro application.

Retained features

  • HTTP/HTTPS and SOCKS protocol support
  • Surge-like configuration
  • GeoIP rule support
  • Support for Vmess/Shadowsocks/Socks5/Trojan protocols
  • Netfilter TCP redirect support
  • macOS 10.14+ compatibility
  • Historical macOS compatibility fixes; newer system releases are no longer tested or maintained

📥 Installation

Historical ClashX installers remain available on the Releases page.

For a maintained client, see ClashFX and its migration guide. Check compatibility before installing.

Legacy build instructions

These instructions are retained for reference and are not maintained against newer Xcode or macOS releases.

Prerequisites

  • macOS 10.14 or later
  • Xcode 15.0+
  • Python 3
  • Golang 1.21+

Build Steps

  1. Install Golang

    brew install golang
    # or download from https://golang.org
  2. Install dependencies

    bash install_dependency.sh
  3. Open and build

    open ClashX.xcworkspace
    # Build in Xcode (Cmd+R)

⚙️ Configuration

Default Paths

The default configuration directory is $HOME/.config/clash

The default configuration file name is config.yaml. You can use custom config names and switch between them in the Config menu.

For more details, check out SS-Rule-Snippet for Clash.

🔧 Advanced Configuration

Change Proxy Port

Go to Menu Bar → Config → More Settings and modify the corresponding port numbers.

Customize Status Menu Icon

Place your icon file at ~/.config/clash/menuImage.png, then restart ClashX.

Change Default System Ignore List

Navigate to Menu → Config → Settings → Bypass proxy settings for these Hosts & Domains.

URL Schemes

  • Import remote config:

    clash://install-config?url=http%3A%2F%2Fexample.com&name=example
    
  • Reload current config:

    clash://update-config
    

Get Process Name

Add the following to your config file and set proxy mode to rule. View logs via the Help menu:

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

Disable Notifications

  1. Go to System Settings and disable ClashX notification permissions
  2. Enable "Reduce Notifications" in Menu Bar → Config → More Settings

Note: Not recommended as you may miss important error notifications.

Global Shortcuts

  • Customize shortcuts in Menu Bar → Config → More Settings (requires v1.116.1+)
  • Or use AppleScript - see Shortcuts Guide

❓ FAQ

Q: How to get shell commands with external IP? A: Click the ClashX menu icon and press Option-Command-C

🤝 Contributing

ClashX is no longer maintained, and new feature work should be proposed in ClashFX. Historical reports and contributions remain available for reference; review, fixes and new ClashX releases are not promised.

📄 License

See LICENSE file for details.

🙏 Acknowledgments

Based on the original ClashX project.

About

ClashX is no longer maintained. Please migrate to ClashFX: https://clashfx.com

Topics

Resources

Stars

796 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages