{"id":49048850,"url":"https://github.com/juwan-hwang/zephyr","last_synced_at":"2026-05-24T10:03:25.321Z","repository":{"id":348120911,"uuid":"1196583327","full_name":"Juwan-Hwang/Zephyr","owner":"Juwan-Hwang","description":"Zephyr: A modern, lightweight, and secure Mihomo / Clash Meta GUI client built with Tauri and Rust.","archived":false,"fork":false,"pushed_at":"2026-05-20T19:21:21.000Z","size":27835,"stargazers_count":277,"open_issues_count":5,"forks_count":22,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-20T22:47:12.234Z","etag":null,"topics":["clash","clash-meta","cross-platform","desktop-app","gui","javascript","linux","macos","mihomo","network-security","proxy","proxy-client","rule-engine","rust","tailwind-css","tauri","vanilla-js","vibe-coding","vpn","windows"],"latest_commit_sha":null,"homepage":"https://juwan-hwang.github.io/Zephyr/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Juwan-Hwang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-30T20:53:12.000Z","updated_at":"2026-05-20T22:44:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Juwan-Hwang/Zephyr","commit_stats":null,"previous_names":["juwan-hwang/zephyr"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/Juwan-Hwang/Zephyr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juwan-Hwang%2FZephyr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juwan-Hwang%2FZephyr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juwan-Hwang%2FZephyr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juwan-Hwang%2FZephyr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Juwan-Hwang","download_url":"https://codeload.github.com/Juwan-Hwang/Zephyr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juwan-Hwang%2FZephyr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33429192,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T22:14:44.296Z","status":"online","status_checked_at":"2026-05-24T02:00:06.296Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clash","clash-meta","cross-platform","desktop-app","gui","javascript","linux","macos","mihomo","network-security","proxy","proxy-client","rule-engine","rust","tailwind-css","tauri","vanilla-js","vibe-coding","vpn","windows"],"created_at":"2026-04-19T19:09:16.700Z","updated_at":"2026-05-24T10:03:25.314Z","avatar_url":"https://github.com/Juwan-Hwang.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"apps/desktop/src-tauri/icons/icon.png\" alt=\"Zephyr - Modern Mihomo GUI Client Logo\" width=\"128\" height=\"128\"\u003e\n\n# Zephyr\n\n**安全至上 · 极简美学 · 轻量高效**\n\n[English](README_en.md) | [简体中文](README.md)\n\n\u003e 一款为颜值而生、以安全为核的现代 Mihomo GUI 客户端，内置 Prism Engine 规则引擎。\n\u003e\n\u003e A modern, security-focused Mihomo (Clash Meta) GUI client built with Tauri v2, Rust, native JavaScript, Tailwind CSS, and Prism Engine.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20macOS%20%7C%20Linux-blue)](#安装)\n[![Tauri](https://img.shields.io/badge/Tauri-v2-24c8db)](https://tauri.app)\n[![Rust](https://img.shields.io/badge/Rust-1.92+-orange)](https://www.rust-lang.org/)\n[![Release](https://img.shields.io/github/v/release/Juwan-Hwang/Zephyr)](https://github.com/Juwan-Hwang/Zephyr/releases)\n[![Security](https://img.shields.io/badge/Security-CodeQL%20%7C%20Semgrep%20%7C%20cargo--deny%20%7C%20Clippy-green)](#安全设计)\n[![Rust Tests](https://img.shields.io/badge/dynamic/json?url=https://gist.githubusercontent.com/Juwan-Hwang/6f7cfd1b6927a9a224ffe8cb21f5e9d4/raw/rust-tests.json\u0026query=$.message\u0026label=Rust%20Tests\u0026color=green)](https://github.com/Juwan-Hwang/Zephyr/actions)\n[![JS Tests](https://img.shields.io/badge/dynamic/json?url=https://gist.githubusercontent.com/Juwan-Hwang/6f7cfd1b6927a9a224ffe8cb21f5e9d4/raw/js-tests.json\u0026query=$.message\u0026label=JS%20Tests\u0026color=brightgreen)](https://github.com/Juwan-Hwang/Zephyr/actions)\n\n\n\u003c/div\u003e\n\n---\n\n## 项目状态\n\nZephyr 的开发起因很简单：目前我还没有找到符合自己审美的 Mihomo/Clash GUI，所以就自己 vibe coding 了一个。\n\n这个项目首先服务于个人使用场景。它追求两件事：一个更顺眼的桌面代理管理界面，以及更清楚的安全边界，包括订阅下载、配置处理、文件写入、脚本执行、深链导入和更新校验。\n\n本项目所有内容由 AI 生成（包括此段文字），安全性、稳定性和性能都不应被默认视为已经充分验证。使用前请自行评估风险；发现安全问题或 Bug，可以提交 Issue。PR 不保证合并，如果你有自己的需求，通常 Fork 后直接改会更快。\n\n---\n\n## 截图\n\n![Zephyr 主页 - macOS 浅色模式 Mihomo 代理客户端界面](apps/desktop/assets/screenshot-home.png)\n\n\u003cdetails\u003e\n\u003csummary\u003e更多截图\u003c/summary\u003e\n\n| 深色模式 | 设置页面 |\n|:---:|:---:|\n| ![Zephyr 深色模式 - 代理节点管理界面](apps/desktop/assets/screenshot-dark.png) | ![Zephyr 设置页面 - 系统代理与 TUN 配置](apps/desktop/assets/screenshot-settings.png)  |\n\n\u003c/details\u003e\n\n---\n\n## 为什么选择 Zephyr？\n\nZephyr 不是\"功能堆满就好\"的客户端。它更关注三个方向：\n\n- **视觉体验**：毛玻璃卡片、渐变图标、深色模式、动画细节和克制排版，让代理客户端不再像临时工具。\n- **安全边界**：对订阅、配置、脚本、文件、更新和深链入口做明确限制，减少代理客户端常见攻击面。\n- **规则能力**：内置 Prism Engine，用声明式规则补丁、规则库、智能节点选择和脚本沙箱扩展 Mihomo 配置能力。\n\n详细功能清单见 [FEATURES.md](FEATURES.md)。\n\n## 社区成长\n\nZephyr 正在受到开发者与用户的关注。\n\n\u003ca href=\"https://www.star-history.com/?repos=Juwan-Hwang%2FZephyr\u0026type=timeline\u0026legend=top-left\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/chart?repos=Juwan-Hwang/Zephyr\u0026type=timeline\u0026theme=dark\u0026legend=top-left\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/chart?repos=Juwan-Hwang/Zephyr\u0026type=timeline\u0026legend=top-left\" /\u003e\n    \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/chart?repos=Juwan-Hwang/Zephyr\u0026type=timeline\u0026legend=top-left\" width=\"450\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\n---\n\n## 功能特性\n\n### 核心能力\n\n- **Mihomo 核心管理**：启动、停止、重启代理核心\n- **多配置管理**：创建、编辑、切换 YAML 配置\n- **订阅管理**：支持 URL、文件、二维码、拖拽导入和 Base64 自动解码\n- **代理模式切换**：规则、全局、直连三种模式\n- **系统代理**：Windows / macOS / Linux 原生系统代理管理\n- **TUN 模式**：系统级透明代理能力\n- **连接与流量**：实时连接列表、连接关闭、上下行速度和历史趋势\n\n### Prism Engine\n\nZephyr 内置基于 `clash-prism-*` crate 的规则引擎，用来增强 Mihomo 配置管理：\n\n- **声明式规则补丁**：`.prism.yaml` 支持 `$prepend`、`$append`、`$filter`、`$override` 和 `__when__` 条件\n- **规则库管理**：规则文件 CRUD、分组、导入、自动应用和文件监听\n- **智能节点选择**：基于延迟、成功率、稳定性的 EMA 评分与自适应调度\n- **Failover**：节点失败时自动切换，支持阈值、冷却和回退策略\n- **脚本沙箱**：QuickJS 执行环境，带时间、内存、字符串长度、循环和递归等资源限制\n- **插件系统**：插件发现、加载、生命周期钩子和细粒度权限控制\n- **KV 存储**：提供持久化键值存储能力\n\n### 安全特性\n\n- **机器绑定加密**：订阅元数据（URL、流量信息）加密使用硬件指纹派生密钥；代理配置文件（YAML）明文存储\n- **SSRF 防护**：订阅和规则 URL 下载前进行 DNS 验证；重定向到内网地址会被拦截（用户主动输入内网地址允许）\n- **DNS 防泄漏**：TUN 模式自动注入 `dns-hijack`，劫持所有 DNS 流量到 Mihomo\n- **配置清洗**：递归移除危险 YAML 字段，限制 provider 路径遍历\n- **脚本权限控制**：脚本执行受资源限制和权限限制约束\n- **输入验证**：IPC 命令入口做长度、格式和 UTF-8 安全处理\n- **速率限制**：双重限流 — 原有命令固定冷却时间 + Prism 命令滑动窗口\n- **文件安全**：安全权限、UUID 临时文件、压缩包路径遍历防护、符号链接拒绝、压缩炸弹检测\n- **更新完整性**：SHA256 校验、可信主机限制和资源名校验、原子更新与自动回滚\n- **深链安全**：限制 `clash://` 协议入口和 URL scheme\n- **CSP 与构建加固**：限制脚本和连接来源，release 启用 LTO、strip、`panic=abort`\n\n### 系统集成\n\n- 系统托盘状态图标和快捷菜单\n- 全局快捷键：窗口显示、系统代理、TUN、代理模式切换\n- `clash://` 深链订阅导入\n- Windows UWP 环回免除\n- Mihomo 核心、GeoIP / GeoSite 数据和 Zephyr 客户端更新\n- 开机自启、系统通知、配置目录打开\n\n### UI / UX\n\n- 透明无边框窗口与自定义标题栏\n- **UI 缩放**：0.5x - 2.0x 界面缩放，适配不同分辨率\n- 虚拟滚动日志、分级过滤和正则搜索\n- CodeMirror 6 编辑器，支持 Prism DSL 高亮与补全\n- 代理节点卡片 3D 交互效果\n- 主题系统：预设主题和自定义颜色\n- i18n：英文基准、中文完整翻译，日文/韩文仍是骨架翻译并会回退到英文\n- 前端事件总线、集中式状态和缓存层\n\n---\n\n## 技术栈\n\n| 层级 | 技术 | 说明 |\n|:---:|:---:|:---|\n| 桌面框架 | Tauri v2 | 轻量桌面应用框架 |\n| 后端 | Rust 1.92+ | IPC、系统集成、核心管理和安全边界 |\n| 前端 | 原生 JavaScript | 无前端框架依赖 |\n| 样式 | Tailwind CSS v4 | 现代原子化样式系统 |\n| 编辑器 | CodeMirror 6 | Prism DSL 编辑体验 |\n| 规则引擎 | clash-prism-* | 规则补丁、插件、脚本沙箱、智能选择 |\n| 包管理 | pnpm workspace | `apps/*` + `packages/*` monorepo |\n| 代理核心 | Mihomo | Clash Meta 内核 |\n\n---\n\n## 安装\n\n从 [GitHub Releases](https://github.com/Juwan-Hwang/Zephyr/releases) 下载对应平台的安装包。\n\nZephyr 的发布包分为三类：\n\n| 类型 | 说明 | 适用场景 |\n|:---:|------|---------|\n| **Full** | 包含 Mihomo 核心和 GeoIP / GeoSite 数据 | 首次安装、离线使用 |\n| **Lite** | 体积更小，不包含核心资源 | 已有本地核心资源 |\n| **Portable** | 解压即用，数据存储在程序目录 | U 盘携带、多设备使用 |\n\n### 便携版使用\n\n1. 下载 `Zephyr-windows-portable.zip` 或 `Zephyr-linux-portable.tar.gz`\n2. 解压到任意目录\n3. 确保目录中存在 `.portable` 标记文件\n4. 运行可执行文件\n\n\u003e **便携版限制**：不支持开机自启和客户端内更新。详见 [PORTABLE.md](PORTABLE.md)。\n\n平台支持以实际 Release 产物为准。\n\n---\n\n## 从源码运行\n\n### 前置要求\n\n- Rust 1.92 或更高版本\n- Node.js 18 或更高版本\n- pnpm 10 或更高版本\n- 对应平台的 Tauri 系统依赖\n\n### 开发模式\n\n```bash\npnpm install\npnpm run dev\n```\n\n### 构建\n\n```bash\npnpm run build\n```\n\n### 常用验证命令\n\n```bash\npnpm run typecheck\npnpm run test\npnpm run lint\npnpm run check:i18n\n```\n\n桌面包也可以单独执行：\n\n```bash\npnpm --filter @zephyr/desktop typecheck\npnpm --filter @zephyr/desktop test\npnpm --filter @zephyr/desktop lint\npnpm --filter @zephyr/desktop build:css\n```\n\nRust 侧验证：\n\n```bash\ncd apps/desktop/src-tauri\ncargo check\ncargo test\ncargo clippy --all-targets --all-features\n```\n\n---\n\n## 项目结构\n\n```text\n.\n├── apps/\n│   └── desktop/                 # Tauri 桌面应用\n│       ├── src/                 # 原生 JS 前端、样式、UI 模块\n│       └── src-tauri/           # Rust 后端、IPC、系统集成、Prism 能力\n├── packages/\n│   ├── shared/                  # 前端共享代码\n│   └── scripts/                 # 项目脚本，例如 i18n 检查\n├── FEATURES.md                  # 当前功能清单\n├── package.json                 # workspace 根脚本\n└── pnpm-workspace.yaml          # pnpm workspace 配置\n```\n\n---\n\n## 贡献\n\n这个项目首先服务于个人使用场景，因此不会保证合并所有 PR。如果你有不同需求，更直接的方式通常是 Fork 后按自己的使用方式修改。\n\n欢迎提交：\n\n- 可复现的 Bug 报告\n- 安全问题反馈\n- 明确、边界清楚的小修复\n- 不改变项目方向的质量改进\n\n---\n\n## License\n\n本项目使用 [MIT License](LICENSE)。\n\n---\n\n## Acknowledgments\n\n- [Mihomo](https://github.com/MetaCubeX/mihomo)\n- [Tauri](https://tauri.app)\n- [Tailwind CSS](https://tailwindcss.com)\n- [CodeMirror](https://codemirror.net)\n- [clash-prism-*](https://github.com/Juwan-Hwang/Clash-Prism-Engine) — Declarative rule engine for Clash\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Conjured by Juwan**\n\n[Back to Top](#zephyr)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuwan-hwang%2Fzephyr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuwan-hwang%2Fzephyr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuwan-hwang%2Fzephyr/lists"}