alielsokary/CaskHub

GitHub: alielsokary/CaskHub

CaskHub 是一款原生 macOS 应用,为 Homebrew Cask 提供了可视化的应用浏览、搜索、安装与卸载管理界面。

Stars: 121 | Forks: 6

# CaskHub [![测试](https://static.pigsec.cn/wp-content/uploads/repos/cas/09/097271ca091990be630ef6043309cc48240faa054413384202036fa2efedb2d2.svg)](https://github.com/alielsokary/CaskHub/actions/workflows/tests.yml) [![Codacy 徽章](https://app.codacy.com/project/badge/Grade/b2d4203ef8724bc0a2265af613ac29c9)](https://app.codacy.com/gh/alielsokary/CaskHub/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) [![codecov](https://codecov.io/gh/alielsokary/CaskHub/branch/develop/graph/badge.svg)](https://codecov.io/gh/alielsokary/CaskHub) [![macOS](https://img.shields.io/badge/macOS-15.6%2B-blue)](https://github.com/alielsokary/CaskHub/releases/latest) [![许可证: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![最新发布](https://img.shields.io/github/v/release/alielsokary/CaskHub)](https://github.com/alielsokary/CaskHub/releases/latest) caskhub-banner-dark **一款原生的 macOS Homebrew casks 应用商店。** 浏览、搜索、安装、更新和卸载通过 [Homebrew](https://brew.sh) 分发的数千款 Mac 应用——包含从源文件中提取的原始应用图标、分类、流行度图表以及一键操作,所有这些都集成在简洁的 SwiftUI 界面中。 CaskHub 100% 免费且开源,没有订阅、没有高级版本、没有广告,没有任何其他收费项目。 caskhub-dark ## 安装 下载 macOS 版应用 或者使用 Homebrew 安装: ``` brew install --cask alielsokary/tap/caskhub ``` ## 功能 ### 探索 - **浏览** - 精选展示架和轮换精选推荐,按类别组织 - **特色推荐** - 按安装流行度排名的前 100 名 casks - **热门排行** - 包含 30 / 90 / 365 天分析窗口的最多安装量 casks - **最近添加** - 过去 30-90 天内新发布到 Homebrew 的 casks - **分类** - 每个 cask 都被划分到可浏览的类别中(开发者工具、生产力、设计等) - **搜索** - 跨名称、token 和描述的即时搜索 (⌘F) ### 管理 - **安装 / 更新 / 卸载** 支持实时进度状态和可取消的下载 - **接管应用** - 一键将你在 Homebrew 之外安装的应用(下载的 DMG、其他商店)纳入 brew 管理,且保留应用在原位置 - **引导式 Homebrew 设置** - 如果缺少 Homebrew,会引导你完成安装,支持自定义安装路径,并能在 Apple Silicon 和 Intel 上选择原生 prefix - **智能更新检测** - 跳过自更新应用,并规范化包后缀版本差异,因此“更新”徽章只显示真正重要的更新 - **已安装资源库** - 检测 Caskroom 中已有的内容,包括从命令行安装的应用 - **原生密码提示** - 需要管理员权限的基于 pkg 的 casks 会弹出原生 macOS 对话框,而不是终端提示 - **丰富的元数据** - 原始应用图标、下载大小、安装次数、主页和版本信息 ### 优化细节 - 网格和列表视图模式,灵活的排序,浅色/深色/系统主题 - 自定义设计系统与内置排版 - 内置分类数据随应用一起发布,因此浏览永远不会受制于网络 - **内置应用更新** - CaskHub 通过 [Sparkle](https://sparkle-project.org) 自行保持最新状态 ## 工作原理 CaskHub 在三个层面上与 Homebrew 进行交互: 1. **目录与分析** 数据来自公开的 [Homebrew API](https://formulae.brew.sh)(`/api/cask.json` 和安装分析数据)。仅浏览不需要安装 Homebrew。 2. **已安装应用检测** 直接从你的 Caskroom(`$HOMEBREW_PREFIX/Caskroom`)读取安装凭证——速度快且无需调用 shell 命令。 3. **安装、更新和卸载** 通过你真实的 `brew` 二进制文件运行,因此 CaskHub 所做的一切都与命令行完全兼容。你在 CaskHub 中安装的任何内容都可以使用 `brew` 进行管理,反之亦然。 分类、首次出现日期和原始应用图标由配套的 [CaskFlow](https://github.com/alielsokary/CaskFlow) pipeline 生成,并通过其 GitHub Releases 使用。内置的快照随应用一起提供,因此这些功能都不会阻塞启动或需要网络连接。 ## 系统要求 - **macOS 15.6** 或更高版本 - **[Homebrew](https://brew.sh)** - 安装、更新和卸载 casks 所必需(浏览不需要) ## 从源代码构建 想自己构建?你需要 Xcode 26 或更高版本: ``` git clone https://github.com/alielsokary/CaskHub.git cd CaskHub open CaskHub.xcodeproj ``` 选择 **CaskHub** scheme 并运行 (⌘R)。Xcode 会自动解析 Swift package 依赖项([Sparkle](https://github.com/sparkle-project/Sparkle)、[Sentry](https://github.com/getsentry/sentry-cocoa) 和 [TelemetryDeck](https://github.com/TelemetryDeck/SwiftSDK))。 ## 架构 - **SwiftUI + MVVM** 架构,使用 `@Observable` view models 和 `@MainActor` 隔离 - **基于协议的网络层** 以实现可测试性(`BrewAPIClientProtocol`、`NetworkServiceProtocol`),全面采用依赖注入 - **两层图标缓存**(内存 + 磁盘)以及基于 HTTP header 的下载大小解析 - **极简依赖** - 三个专用的 package:用于应用更新的 [Sparkle](https://sparkle-project.org)、用于崩溃报告的 [Sentry](https://sentry.io) 以及用于分析的 [TelemetryDeck](https://telemetrydeck.com) ## 测试与 CI 测试使用 XCTest 在向 `master` 和 `develop` 提交的 pull request 以及向 `develop` 推送时运行,测试覆盖率报告至 Codecov,静态分析由 Codacy 负责。对 `master` 的 PR 进行的发布新鲜度检查确保内置的分类数据与最新的 CaskFlow 版本保持同步。 ``` xcodebuild test -project CaskHub.xcodeproj -scheme CaskHub -destination 'platform=macOS' ``` ## 隐私与分析 CaskHub 通过 [TelemetryDeck](https://telemetrydeck.com)(一项隐私优先的分析服务)收集匿名的使用分析数据。没有任何个人数据或标识符会离开你的 Mac:用户 ID 在设备上进行加盐和哈希处理,并且不会跨应用或网站进行追踪。 CaskHub 还会通过 [Sentry](https://sentry.io) 发送匿名崩溃报告,以帮助诊断和修复稳定性问题。 你可以随时在 **设置 → 隐私** 中选择退出这两项。 ## 贡献 有兴趣为 CaskHub 做贡献吗?我们欢迎各种形式的贡献! - **代码贡献**:Bug 修复、新功能、改进 - **Bug 报告**:发现问题?请告诉我们 - **功能请求**:有想法?我们很乐意倾听 ## 许可证 CaskHub 基于 [MIT 许可证](LICENSE) 发布。
标签:GUI, Homebrew, SwiftUI, 应用商店, 桌面应用