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.
- ClashFX website
- Download ClashFX
- Migrate from ClashX: backup, import, verification and rollback
- ClashFX repository and feedback
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
- Retained ClashX 1.140.0 release
- All historical ClashX releases
- ClashX website and retained downloads
- Configuration tutorials
- Existing issues
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
- 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
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.