Momomi 是一个原生 Windows 桌面应用,用 mihomo(Clash.Meta)作为代理内核。它把内核、订阅、系统代理和图形界面打包成一个开箱即用的客户端:导入订阅后点一下就能联网,日常需要的节点切换、连接排查、流量查看都在同一个窗口里完成。
界面使用 WinUI 3,跟随系统深浅色与亚克力 / Mica 背景;托盘和迷你面板让它在后台也能随手操作。
| 能力 | 说明 |
|---|---|
| 三种代理模式 | 规则 / 全局 / 直连,运行中即时切换,无需重启 |
| 系统代理 | 写系统代理设置并即时通知刷新,支持手动代理与 PAC 两种模式 |
| TUN 模式 | 接管全局流量,支持 stack、自动路由、严格路由、MTU、DNS 劫持等参数 |
| 订阅管理 | URL / 本地文件导入、编辑、刷新,解析流量用量与到期时间,每小时自动更新 |
| 覆写 | 用 YAML 在订阅之上叠加规则、代理组、DNS 等自定义配置,订阅刷新后依然生效;支持全局启用或按订阅挂载 |
| 代理组与节点 | 选择器 / 自动测速 / 故障转移等组类型,单点或整组测速,记住手动选择 |
| 实时连接 | 每条连接的进程图标、规则、代理链、上下行速率,支持过滤、排序与关闭 |
| 流量统计 | 实时速率、累计流量、内核内存与连接数,6 小时至 30 天的历史趋势 |
| 规则查看 | 展示运行态规则与命中次数,可临时禁用单条规则或一键恢复 |
| 实时日志 | 内核日志流,按级别过滤、暂停、复制与清空 |
| 网络诊断 | 出口 IP 与归属地识别(含国旗)、常用目标延迟测试 |
| 全局快捷键 | 显示主界面、切换系统代理 / TUN / 模式等,支持冲突检测 |
| 托盘与迷你面板 | 托盘状态变色与 Fluent 菜单;迷你面板显示速率、模式与订阅用量 |
| SSID 感知 | 按 WiFi 自动暂停代理或切换订阅 |
| 内核与应用更新 | 内核、地理数据、应用本体均可检查更新并一键升级 |
到 Releases 下载最新版。提供合并版与分离版两种形态:
合并版(自包含,推荐) — 自带 .NET 与 WinUI 运行时,解压即用。
| 类型 | 说明 |
|---|---|
| x64 安装包 | 推荐。一键安装,可选开机自启与桌面快捷方式 |
| x64 便携版 | 解压即用,无需安装 |
| x64 完整版 安装包 | 内置内核与地理数据库,开箱即用 |
| x64 完整版 便携包 | 内置内核与地理数据库,解压即用 |
| ARM64 便携版 | ARM64 设备(如骁龙本) |
| ARM64 完整版 便携包 | ARM64 设备,内置内核与地理数据库 |
分离版(框架依赖,体积最小) — 需系统已装 Windows App Runtime 2.6.4+ 与 .NET 运行时 10.0,否则无法启动。仅提供 x64,体积比合并版小约 100 MB。
| 类型 | 说明 |
|---|---|
| x64 安装包 | 一键安装,安装时检测运行时并提示 |
| x64 便携版 | 解压即用,需自备运行时 |
| x64 完整版 安装包 / 便携包 | 内置内核与地理数据库,需自备运行时 |
分离版运行环境要求(均须为 x64):
| 运行时 | 所需版本 | 下载地址 |
|---|---|---|
| Windows App Runtime | 2.6.4 或更高(2.x) | WindowsAppRuntimeInstall-x64.exe |
| .NET 运行时 | 10.0 | .NET 10 下载 |
精简版体积更小,首次启动会联网下载内核与地理数据;完整版内置内核与地理数据,适合网络访问 GitHub 不便的场景。绝大多数 Windows 电脑选 x64 合并版。
除安装包与便携版外,另提供 x64 MSIX 包(Momomi-<version>-x64.msix)。它以 MSIX 打包形态交付,保留全部功能:应用自身以管理员权限运行,TUN、系统代理、UWP 回环豁免与开机自启均与安装版一致。
- 打包形态使用
allowElevation能力,因此 MSIX 必须签名才能安装(自签名证书亦可,需先导入「受信任人」存储)。 - 打包形态下数据目录固定为
%LOCALAPPDATA%\Momomi(MSIX 安装目录只读)。 - 应用更新:MSIX 版不支持应用内的覆盖式自更新,请通过新的 MSIX 包升级。
安装步骤(当前使用自签名证书,需先信任证书):
-
下载
Momomi-<version>-x64.msix与momomi-signing.cer两个文件。 -
导入证书到「受信任人」存储(会弹一次 UAC):
certutil -addstore -f TrustedPeople momomi-signing.cer
-
双击
.msix安装,或用 PowerShell:Add-AppxPackage .\Momomi-<version>-x64.msix
证书有效期至 2031 年,到期后需重新下载并信任新证书。
- 启动 Momomi(首次会请求管理员权限,用于 TUN)。
- 进入 订阅 页,粘贴订阅链接导入,导入后立即生效。
- 回到 概览,在 代理 页选择一个节点或代理组。
- 需要全局接管时打开 TUN,否则打开 系统代理 即可。
关闭主窗口默认最小化到托盘,左键单击托盘图标呼出迷你面板。
订阅里的规则常常不完全合自己的口味,但直接改订阅文件会在下次刷新时被覆盖。覆写 就是为此准备的:它单独存一份 YAML,在生成 runtime.yaml 时叠加到订阅配置之上。
覆写语法与 Mihomo Party / Clash Verge Rev 一致,社区现成的覆写文件可以直接导入:
| 写法 | 含义 |
|---|---|
key: value |
简单值直接覆盖;嵌套映射递归合并 |
key!: |
整体替换该字段,不做递归合并 |
rules: |
整个数组替换 |
+rules: |
插到原数组最前面(优先级最高) |
rules+: |
追加到原数组最后 |
<+xxx>: |
键名本身以 + 开头时用尖括号转义 |
最常用的场景:让某些域名直连。
+rules:
- "DOMAIN-SUFFIX,baidu.com,DIRECT"
- "DOMAIN-SUFFIX,qq.com,DIRECT"用法要点:
- 新建 时可从内置模板起步(加直连规则、强制走代理、拦截广告、自定义 DNS、开启嗅探)。
- 全局启用 的覆写对所有订阅生效;否则需要到 订阅 → 编辑信息 里把它挂到具体订阅上。
- 多个覆写按「全局启用 → 当前订阅挂载」的顺序叠加,后面的优先级更高。
- 保存后会立刻重新生成配置并热重载内核;同时可在编辑器里切到 合并预览 查看最终结果。
- 发现规则没有生效时,先看合并预览里目标规则是否排在
MATCH前面。
- Windows 10 1809(17763)及以上,支持 x64 与 ARM64。
- 管理员权限:主程序以管理员运行,内核作为子进程继承权限,TUN 才能直接生效。若 UAC 设置为不通知,提权会失败并回退到普通代理模式。
- 分离版额外要求:需系统已安装 Windows App Runtime 2.6.4 或更高(x64) 与 .NET 运行时 10.0(x64)。本应用基于 Windows App SDK 2.6 构建,运行时需 2.6.4 或更高的 2.x 版本。合并版无需这些。
- TUN 依赖 wintun,会在需要时自动下载。
- 默认混合端口 7890、控制端口 9090。若端口被 clash-party 等程序占用,请在设置中修改混合端口。
用户数据(数据库、订阅、内核、地理数据)优先存放在程序目录下的 data\,便于便携使用与整体迁移;若程序目录不可写,则回退到 %LOCALAPPDATA%\Momomi,并可从旧目录自动迁移。也可用环境变量 MOMOMI_DATA_DIR 指定。
data\
├── momomi.db # SQLite:设置、订阅、覆写与挂载关系、流量与连接历史
├── core\ # mihomo 内核、wintun、地理数据、runtime.yaml
├── profiles\ # 订阅原始配置
└── overrides\ # 覆写 YAML
安装与便携版更新都会跳过 data\,升级不会影响你的订阅与配置。
Momomi.App WinUI 3 主程序:界面、托盘、迷你面板、快捷键、生命周期
Momomi.Core 业务核心:进程与配置、订阅、覆写合并、系统代理、更新、SSID、PAC
Momomi.Data SQLite 数据层:设置、订阅、流量、连接历史
Momomi.Elevated 提权宿主:以管理员身份代为启动 / 停止内核(TUN 用)
应用启动后由 Momomi.Core 生成 runtime.yaml,依次叠加:订阅原始配置 → 应用全局项(端口、模式、DNS、TUN 等)→ 用户覆写(YamlOverrideMerger),再交给 mihomo 内核运行,并通过其 RESTful API(默认 127.0.0.1:9090)读取代理组、连接、流量与日志。
需要 .NET 10 SDK 与 Windows App SDK 工具链。
# 恢复与构建
dotnet build Momomi.slnx -c Debug -p:Platform=x64
# 合并版(自包含,自带运行时)
dotnet publish src/Momomi.App/Momomi.App.csproj `
-c Release -r win-x64 -p:SelfContained=true -p:WindowsAppSDKSelfContained=true `
-p:Platform=x64 -o publish
# 分离版(框架依赖,体积最小)
dotnet publish src/Momomi.App/Momomi.App.csproj `
-c Release -r win-x64 -p:SelfContained=false -p:WindowsAppSDKSelfContained=false `
-p:Platform=x64 -o publish推 v* 标签会触发 Release workflow,自动构建合并版(x64 / ARM64 × 精简 / 完整)与分离版(x64 × 精简 / 完整),并生成安装包与便携包。
- 安装包未做代码签名,Windows SmartScreen 可能提示未知发布者,选择「仍要运行」即可。
- 请遵守当地法律法规,仅将本软件用于合法用途。
本项目构建在这些开源项目之上:
| 项目 | 用途 | 许可证 |
|---|---|---|
| MetaCubeX/mihomo | 代理内核(Clash.Meta) | MIT |
| MetaCubeX/meta-rules-dat | 地理数据库(geoip / geosite / ASN) | GPL-3.0 |
| WireGuard/wintun | TUN 模式的虚拟网卡驱动 | GPL-2.0 |
| lipis/flag-icons | 出口 IP 归属地与节点名称的 SVG 国旗 | MIT |
| mozilla/twemoji-colr | 未收录国旗的回退 emoji 字体(Twemoji Mozilla) | Apache-2.0 / CC-BY 4.0 |
| HavenDV/H.NotifyIcon | 托盘图标与右键菜单 | MIT |
| CommunityToolkit/dotnet | MVVM 框架(CommunityToolkit.Mvvm) | MIT |
| CommunityToolkit/Windows | WinUI 控件(SettingsControls 等) | MIT |
| aaubry/YamlDotNet | runtime.yaml 的读写 | MIT |
| dotnet/efcore | SQLite 访问(Microsoft.Data.Sqlite) | MIT |
| Microsoft Windows App SDK | WinUI 3 应用框架 | MIT |
| .NET | 运行时与基础库 | MIT |
| jrsoftware/issrc | 安装包(Inno Setup,构建期) | 自定义许可 |
像素猫图标基于 MIT 许可的图标修改,详见 ICONS-LICENSE.md。