Menu

Tree [00f28a] master 1.122.0 /
 History

HTTPS access


File Date Author Commit
 .claude 2025-10-13 ST [987cf9] claude
 .github 2025-12-21 ST ST [10d8d5] ci: Update GitHub Actions to use macos-latest r...
 ClashX 2026-03-12 charles charles [6e5231] fix: add Sparkle EdDSA signing key and update a...
 ClashX.xcodeproj 2026-03-12 charles charles [6e5231] fix: add Sparkle EdDSA signing key and update a...
 ClashX.xcworkspace 2023-09-05 yicheng yicheng [b3edfc] misc: sync core between ClashX and ClashXPro
 ProxyConfigHelper 2023-02-20 yicheng yicheng [57869d] misc: fix typo
 docs 2026-03-12 charles charles [00f28a] chore: add v1.122.0 to appcast.xml with EdDSA s...
 fastlane 2023-07-16 Yicheng Yicheng [c7c758] feat: add new native connection panel (#1181)
 scripts 2019-02-12 Yicheng Yicheng [010389] Feature: Add CI Support (#100)
 zh-Hans.lproj 2018-10-08 yichengchen yichengchen [ac7cc4] Feature: add Chinese support
 .bartycrouch.toml 2023-07-16 Yicheng Yicheng [c7c758] feat: add new native connection panel (#1181)
 .gitignore 2025-10-16 charles [462178] Remove Package.resolved to fix CI build compati...
 .swiftlint.yml 2023-07-16 Yicheng Yicheng [c7c758] feat: add new native connection panel (#1181)
 Gemfile 2025-10-13 ST [32ec4c] fix: resolve Ruby/CocoaPods compatibility issue...
 LICENSE 2019-10-17 yicheng yicheng [62c188] Update License
 Podfile 2025-10-13 ST [99ce35] fix: resolve Swift version compatibility issues...
 README.md 2025-11-14 charles [60e827] docs: 将情况说明改为单语言版本
 README_zh-CN.md 2025-11-14 charles [60e827] docs: 将情况说明改为单语言版本
 SMJobBlessUtil.py 2023-04-26 yicheng yicheng [3ab834] ci: update SMJobBlessUtil.py from https://gist....
 Shortcuts.md 2022-03-22 yunshi yunshi [1807be] docs: add notes for global shortcuts
 a_cat_with_eye.png 2020-03-03 yichengchen yichengchen [f25025] Revert "feat(icon): a cat with eyes (#239)"
 clashx.png 2024-02-21 bannedbook bannedbook [987f3d] update
 install_dependency.sh 2026-03-11 charles charles [1b5e97] fix: correct appcast/download URLs and add base...
 updateLocalization.sh 2023-07-16 Yicheng Yicheng [c7c758] feat: add new native connection panel (#1181)
 update_appcast.sh 2026-03-11 charles charles [1b5e97] fix: correct appcast/download URLs and add base...

Read Me

Clash
ClashX

[English](README.md) | [简体中文](README_zh-CN.md)

⚠️ 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


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

  1. Install Golang
    bash brew install golang # or download from https://golang.org

  2. Install dependencies
    bash bash install_dependency.sh

  3. Open and build
    bash 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

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.

MongoDB Logo MongoDB