ClashX
Clash X
Install / Use
/learn @ClashX-Pro/ClashXREADME
⚠️ Notice
This project is based on code originally created by yichengchen. I discovered that the original version was not compatible with macOS 26 (Sequoia), so I modified the code to make it work on macOS 26. The source code was forked from bannedbook/ClashX. The git history was lost because I accidentally deleted the .git folder when recreating the project after encountering some issues.
🌐 Official Website
Official Website: https://clashx.tech
- 📥 Download Latest Version
- 📖 Documentation & Tutorial
- ❓ FAQ
- 🚀 Next-Gen Client: ClashFX — A modern macOS proxy client with visual config editor
A rule-based proxy client for macOS based on Clash.
ClashX aims to provide a simple and lightweight proxy client with an intuitive interface.
⚠️ Notice
- Official Website: Please visit the official website at clashx.tech.
- ClashX / ClashX Pro is only a proxy tool and does not provide any proxy servers. For server-related issues or renewals, please contact your service provider.
✨ 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
- macOS 15+ (Sequoia) support with compatibility fixes
📥 Installation
ClashX Pro comes with enhanced mode and other Clash Premium Core features.
Download from the Releases page.
🔨 Build from Source
Prerequisites
- macOS 10.14 or later
- Xcode 15.0+
- Python 3
- Golang 1.21+
Build Steps
-
Install Golang
brew install golang # or download from https://golang.org -
Install dependencies
bash install_dependency.sh -
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
- Go to System Settings and disable ClashX notification permissions
- 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
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
📄 License
See LICENSE file for details.
🙏 Acknowledgments
Based on the original ClashX project.
