yichengchen

客户端与生态

ClashX 创始开发者 · 2018 — 2023

又名 YC

ClashX:macOS 菜单栏上的原生美学与静默守护

以极致克制的无感交互驯服复杂分流,用 Privileged Helper 与 NetworkExtension 架构定义 Mac 桌面代理新范式

序幕:菜单栏的空白与 Electron 的阴影

在 2018 年初夏的代理工具生态中,跨平台封装框架近乎统治了桌面端。开发者只需维护一套网页视图,就能快速打包出兼顾 Windows 与 macOS 的可执行文件。

然而在追求极度轻盈与系统契合度的 Mac 用户眼中,这种“移植产物”往往带着挥之不去的违和感:一个仅需驻留后台分流流量的基础工具,动辄占用数百兆内存,随之而来的是风扇呼啸与肉眼可见的界面掉帧。

更令 Mac 用户不胜其扰的,是 Unix 哲学下严苛的安全权限屏障:macOS 严禁普通权限进程随意篡改系统网络偏好设置。用户每一次切换配置或开关代理,屏幕中央都会突兀地弹出一堵灰色锁形对话框,强制要求输入管理员密码或验证 Touch ID。

面对刚刚由 Dreamacro 在 Go 语言中开拓出的声明式分流核心,Mac 平台迫切需要一位深谙 Apple 平台人机交互灵魂的开发者,打造一款如同 macOS 原生预装般的精致工具。[1][2]

破晓:世界首个 Clash GUI 与权限破局

2018 年 6 月 13 日,yichengchen 在 GitHub 上完成了项目首个提交(Commit 8f00a87),正式拉开了 ClashX 的序幕。这不仅是 macOS 平台上的第一个 Clash 工具,更是全球范围内诞生的第一个 Clash 图形客户端。

在次日推送的初版 README 中,他言简意赅地写下项目定位:“A rule based proxy For Mac base on clash.”从动工之初,他就展现出了极其克制的产品哲学:彻底摒弃笨重的前台主窗口,将全部的人机交互场景收纳在屏幕右上角那只灵动的小猫菜单栏图标中。

为了攻克频繁弹窗的系统顽疾,yichengchen 在 2018 年 6 月 14 日的提交(Commit c56aa26)中即刻着手引入提权辅助机制,并在后续迭代中重构为独立的 Privileged Helper Tool 守护进程(Commit 60691df)。

该机制严格遵循 Apple 官方推荐的 SMJobBless 规范,在 launchd 系统守护体系中完成一次性安全鉴权。此后无论是出站切换还是全局代理启停,ClashX 均能在后台毫秒级静默生效,彻底终结了打断心流的密码轰炸。[3][2]

雕琢:原生 Cocoa 交互与毫秒级延迟渲染

yichengchen 坚持采用纯正的 Cocoa、Swift 与 Objective-C 构筑客户端。当用户轻点状态栏图标,一层轻盈的毛玻璃下拉菜单顺滑展开,出站规则、嵌套策略组、分流日志与快捷开关尽收眼底。

针对复杂网络环境下的节点筛选难题,他在 2020 年 4 月连续推进多项重磅更新:Commit 615fc5d 实现了“网络变动或系统休眠唤醒时自动对策略组进行健康检查”,让 MacBook 用户在合盖开盖之间始终保持连接可用。

紧随其后的 Commit 73d2478 与 aad8b3b,在 macOS 10.15.2 及以上系统启用了自定义 NSView 渲染技术。节点列表中不仅能实时展示测速毫秒数,还能以直观的绿色、黄色、红色色阶徽章呈现网络质量,将冷冰冰的数字转化为一目了然的视觉反馈。

2020 年 5 月 23 日,Commit 0461db8 引入了基础 iCloud Drive 配置同步功能,允许拥有多台 Mac 的专业用户在云端无缝共享订阅与自定义规则,再次将 Apple 原生生态的协同优势发挥到极致。[2]

跨越:ClashX Pro 与 NetworkExtension 增强模式

随着开发工作流的演进,传统系统 HTTP / SOCKS5 代理机制的短板逐渐显现:终端命令行下的 curl、git、brew,容器环境 Docker,以及大量依赖底层原始套接字的联机工具,往往默认忽略操作系统的代理环境变量。

彼时苹果正在逐步废弃内核扩展(kext),传统通过注入虚拟网卡驱动接管流量的做法极易导致系统崩溃。yichengchen 敏锐跟进 macOS 最新的 NetworkExtension 系统扩展框架,打造了独立的进阶版本——ClashX Pro。

通过 Microsoft App Center 公开分发渠道,ClashX Pro 率先为 Mac 用户带来了革命性的“增强模式(Enhanced Mode)”。依托 NEPacketTunnelProvider 虚拟网络隧道,客户端在系统协议栈底层实现了透明接管。

全系统所有的 TCP 与 UDP 数据包无需配置任何环境变量即可被捕获并交由 Clash 内核进行 Fake-IP 域名逆解析与策略分流。Mac 开发者自此摆脱了在终端反复 export 代理端口的烦恼,步入了全系统开箱即连的新阶段。[4]

契合:Big Sur 与 Apple Silicon 时代的极速响应

2020 年底,苹果公司迎来了软硬件层面的双重历史剧变:macOS 11 Big Sur 推出了焕然一新的设计语言,而首批搭载自研 M1 芯片的 Mac 电脑更是重塑了桌面算力与能耗比。

yichengchen 展现出了极高的工程响应速度。2020 年 11 月 14 日,他在 Commit 3e165db 中率先完成对 macOS 11 全新视觉风格的适配(“feat: adapt macOS 11 look”),重塑图标与圆角设计,完美契合全新的菜单栏与控制中心规范。

仅仅四天之后的 2020 年 11 月 18 日,Commit a0daee3 引入了 Universal Build 通用二进制构建脚本(“feat: add universal build script”),使 ClashX 成为极早原生支持 Apple Silicon ARM64 架构的代理客户端之一。

在 M1 芯片的加持下,纯原生编译的 ClashX 运行时 CPU 占用近乎归零,内存占用缩减至数十兆以内。这只静静卧在屏幕右上角的菜单栏小猫,真正做到了“随风潜入夜,润物细无声”。[5]

归档与火种:MetaCubeX 的接力与永驻菜单栏的猫

在长达数年的迭代中,ClashX 陆续加入了 URL Scheme 协议支持(Commit dd25adc,支持 clash://install-config 格式一键导入),并在 2022 年 3 月 22 日发布了 v1.91.1 稳定版本(Commit 9980dda)。

早在 2022 年 6 月 12 日,开源社区组织 MetaCubeX 便基于 ClashX 的经典交互框架创建了衍生仓库 ClashX.Meta。这一分支在完全继承 yichengchen 菜单栏设计语言的同时,无缝适配了 Clash.Meta(后演进为 Mihomo)现代核心与新特性。

2023 年 11 月 3 日,公开记录显示原版 yichengchen/clashX 仓库转入只读归档状态。与此同时,ClashX.Meta 作为早已独立发展的社区接力者,持续承载着广大 Mac 用户的日常网络需求。

从 2018 年写下第一行 Swift 代码,到定义 Mac 菜单栏代理的人机交互标杆,yichengchen 用数年如一日的克制与专注,证明了原生应用在现代操作系统中不可替代的优雅与力量。[8][6][7]

本站收录作品

已收录 1 款主导开发应用
ClashX Meta

ClashX Meta

开源免费
macOS

macOS 菜单栏 Mihomo 客户端,支持规则配置、系统代理及多类常用代理节点。

代表作品与核心贡献

全球首个 Clash 图形客户端,专为 macOS 打造的高性能纯原生菜单栏代理工具,采用 Swift/Objective-C 打造

ClashX Pro

访问作品

率先整合 Apple NetworkExtension 框架的进阶版本,提供免配置全系统透明网络接管的“增强模式”

Privileged Helper Tool 提权守护进程

访问作品

基于 macOS launchd 与 SMJobBless 打造的安全特权助手,彻底消灭切换系统代理时的密码弹窗

ClashX.Meta (社区分支)

访问作品

由 MetaCubeX 社区于 2022 年 6 月创建并延续的 ClashX 分支,保留经典原生菜单栏交互并接续适配现代内核

致敬开发者的坚守

代码或许归档,但火种永不熄灭。为推动网络对抗演进与底层工程突破的开拓者献上一份敬意。

单设备 1 小时内限致敬 1 次 · 匿名无感不收集隐私

编年大事记

yichengchen 提交 ClashX 初始代码

Commit 8f00a87 标志着全球首个 Clash 图形客户端诞生,确立专为 macOS 定制的纯原生菜单栏常驻架构。[3][2]

引入系统提权辅助并首次发布官方定位

Commit c56aa26 解决系统代理权限检测并引入 Clash 子模块;初版 README 确立“A rule based proxy For Mac base on clash”。[2]

实现网络变动与休眠唤醒健康检测

Commit 615fc5d 实现当网络变动或系统休眠唤醒时,自动对策略组展开延迟测速与节点选优。[2]

重构 Privileged Helper 提权守护进程

Commit 60691df 将特权助手解耦为独立模块,通过 SMJobBless 与 launchd 彻底消除系统代理修改时的密码弹窗。[2]

升级自定义视图与延迟颜色色阶渲染

Commit 73d2478 与 aad8b3b 在 macOS 10.15.2+ 启用 NSView 代理渲染,并支持根据延迟数值渲染颜色色阶徽章。[2]

支持 iCloud Drive 跨设备配置同步

Commit 0461db8 引入基础 iCloud 支持,允许用户将分流规则与配置文件安全保存在 Apple 云端跨端共享。[2]

推出 ClashX Pro 与 NetworkExtension 增强模式

基于 Apple NetworkExtension 框架提供透明网络接管,免去环境变量设置,全面覆盖终端命令行与容器流量。[4]

全面适配 macOS 11 Big Sur 原生视觉语言

Commit 3e165db 重绘菜单栏图标与圆角列表,深度契合 macOS 11 全新毛玻璃与控件风格。[5]

推出 Apple Silicon M1 通用架构编译支持

Commit a0daee3 引入 Universal Build 脚本,原生支持 M1 芯片 ARM64 指令集,大幅降低能耗。[5]

支持 clash://install-config 快捷导入协议

Commit dd25adc 升级 README 并支持自定义 URL Scheme,为各大节点平台一键导入提供标准规范。[2]

发布 v1.91.1 正式版本

Commit 9980dda 完成 1.91.1 版本更新,成为原作者维护周期内最具代表性的稳定收官版本之一。[2]

MetaCubeX 社区创建 ClashX.Meta 分支仓库

MetaCubeX 组织在 GitHub 正式建立社区接续仓库,在保留 yichengchen 经典菜单栏界面的同时跟进现代核心演进。[7]

yichengchen/clashX 仓库记录为只读归档

公开记录显示原版仓库转入只读归档状态,社区生态由 ClashX.Meta 等分支持续传承。[8]

一手来源与考据

小传正文中的关键事实与时间点均基于以下公开一手记录或权威报道:

  1. [1]

    记录作者在 GitHub 上的开源项目与组织主页

    https://github.com/yichengchen
  2. [2]

    保存了 ClashX 归档前的源码结构、Release 说明及菜单栏设计规范

    https://web.archive.org/web/20231029000000/https://github.com/yichengchen/clashX
  3. [3]

    Commit 8f00a87 标志着全球首个 Clash 图形客户端在 macOS 平台诞生

    https://github.com/MetaCubeX/ClashX.Meta/commit/8f00a879035c11af153ef29cf388de5397d4789e
  4. [4]

    证实 ClashX Pro 针对 NetworkExtension 增强模式的技术演进与分发途径

    https://web.archive.org/web/20230515000000/https://install.appcenter.ms/users/clashx/apps/clashx-pro/distribution_groups/public
  5. [5]

    Commit 3e165df 与 a0daee3 确立了对 macOS 11 新 UI 与 Apple Silicon M1 芯片的原生适配

    https://github.com/MetaCubeX/ClashX.Meta/commit/3e165df9954a65af2d6f35793ec2b6478e593f85
  6. [6]

    在保留 ClashX 原生交互设计的同时升级 Mihomo 核心的开源继承项目

    https://github.com/MetaCubeX/ClashX.Meta
  7. [7]

    created_at 字段记录仓库创建时间,不等同于首次发布或分支全部开发历史的起点。

    https://api.github.com/repos/MetaCubeX/ClashX.Meta
  8. [8]

    按北京时间记录:CFW 发布仓库于 11 月 2 日被删除,Clash Core 于 11 月 3 日被删除;区分删库与归档,不推断各项目行动之间的因果关系。

    https://github.com/net4people/bbs/issues/303#issuecomment-1792177030
资料边界与事实声明

本文严格依据 yichengchen 公开的 GitHub 个人主页(github.com/yichengchen)、ClashX 开源仓库完整 Git 提交历史(Commit 记录与 Tag 归档)、官方 Release 说明、Microsoft App Center 公开发布渠道及 Apple 开发者公开接口(SMJobBless、launchd、NetworkExtension)编写。坚守隐私安全红线,严禁推测、探听或记录开发者真实姓名、就职单位、家庭关系及现实地理坐标;对 2023 年 11 月 3 日的代码仓库只读归档及 MetaCubeX 社区接续,仅作技术事实陈述,不进行政治或非技术推论。

修订历史:
  • :首版编写,核验 GitHub 个人主页、历史归档、Apple NetworkExtension 增强模式及菜单栏交互规范。
  • :完成历史全量考据与代码库溯源:核验 2018-06-13 初始提交、Privileged Helper 提权架构、Custom NSView 与颜色色阶渲染、NetworkExtension 增强模式、Big Sur 与 M1 通用架构适配、2023-11-03 只读归档及 Meta 社区接力事实。

发现人物信息不准确?

写明需要纠正的内容,可附相关链接。资料会在人工核验后更新。