RepoDaily · 2026-08-12 · Dataset / Public directory

awesome-mac:带多语言 JSON 导出的 macOS 应用精选目录

#17 Dataset / Public directory Swift +334 jaywcjlove/awesome-mac 打开仓库

jaywcjlove 维护的 awesome-mac 不只是一份 Markdown 清单——它通过 npm 发布四种语言的 JSON 数据,并附带可一键部署的 Docker 静态站点。

项目类型Dataset / Public directory
最适合想浏览精选 macOS 应用的用户;需要通过 npm 或 Docker 消费结构化应用数据的开发者
风险等级低——公开目录,CC0 许可证文件,无需运维运行时服务
评估时间10 分钟浏览分类;20 分钟检查 JSON 结构并完成 npm 集成

核心问题: 目录内容是否足够新?JSON 结构是否包含你的项目所需的字段?

89/100

RepoDaily 采用评分

RepoDaily 将该项目的采用分评为 89/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。

基于 RepoDaily 来源和采用说明的方向性评分,不是基准测试。风险: 低
96证据质量

包含 4 个来源、覆盖 3 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。

100可安装/可试用性

检测到 6 个工作流步骤、5 个下一步动作,以及 4 个命令/安装信号。

70维护可信度

趋势热度为 +334 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。

100生产准备度

采纳风险标记为 low,并包含 4 条安全说明与 4 条跳过条件。

100差异化

3 个机会视角、4 个替代方案,以及 4 个类型化模块支撑差异化判断。

82许可证清晰度

文章中包含许可证来源或许可证表述。

48Agent / AI 适配度

文章正文和元数据中检测到 0 个 AI/Agent 相关信号。

项目概览

awesome-mac 是由 Kenny Wang(jaywcjlove)维护的 macOS 软件精选目录,以单一 Markdown 文档形式编写,并发布为结构化 JSON 数据。仓库将数百款应用按开发者工具、设计软件、生产力工具、媒体应用等类别进行组织。与普通静态 Wiki 页面不同,该项目将 Markdown 源文件构建为机器可读的 JSON 文件,通过 npm 包(版本 2.1.0)发布,使目录数据可被网站、机器人和其他工具直接消费,无需抓取 HTML。

package.json 定义了四个 JSON 导出目标:英文(dist/awesome-mac.json)、韩文(dist/awesome-mac.ko.json)、日文(dist/awesome-mac.ja.json)和中文(dist/awesome-mac.zh.json),均可通过 Node.js 模块命名的子路径导入——awesome-mac/ko、awesome-mac/ja、awesome-mac/zh。构建流程使用 idoc(^1.26.5)生成文档站点,remark(^14.0.2)配合 remark-gfm(^3.0.1)解析 Markdown,自定义脚本 build/ast.mjs 将解析后的 AST 转换为最终 JSON 对象。另外还存在 build/feed.mjs 脚本用于生成订阅源。

项目包含一个基于 lipanski/docker-static-website 的极简 Dockerfile,将 dist 目录复制到静态文件服务器中,实现零运行时依赖的容器化托管。README 头部展示了赞助商链接——getapps.cafe、ScreenSage Pro、LIZHI.SHOP、IP.IM——以及维护者自己开发的 macOS 应用推广徽章,包括 Zipora(压缩解压)、Scap(截图标注)、DockLift、Vidwall、Mousio、Musicer 等。这些推广内容位于目录正文之上,对每位读者可见。

2026 年 8 月 12 日,该仓库以 334 个周期新增 Star 位列趋势榜第 17 名。项目涵盖 macos、macos-apps、awesome-list、desktop-app、software 等主题,兼具社区参考和数据包双重身份。LICENSE 文件声明 CC0 1.0 Universal(公共领域 dedication),但 package.json 中 license 字段却设为 CC-BY-SA-4.0——商业再分发 JSON 数据前需先厘清这一矛盾。

解决什么问题

  • 许可证冲突:LICENSE 文件声明 CC0 1.0 Universal(公共领域),但 package.json 中 license 字段为 CC-BY-SA-4.0,再分发 JSON 数据前需确认适用条款。
  • README 头部将赞助商广告(getapps.cafe、LIZHI.SHOP、IP.IM、ScreenSage Pro)和维护者自有商业应用与精选目录混排,可能影响目录的编辑中立性。
  • 缺少质量评分、用户评级、价格信息或单条目的最后更新时间戳——目录是一个扁平列表,无法检测条目是否过期。
  • 目录内容依赖社区 Pull Request 更新;已停止维护、转为付费或已下架的应用可能在列表中残留而无人标注。
  • GitHub 上标注的语言为 Swift 具有误导性——仓库实际包含的是 Markdown、JavaScript 构建脚本和 JSON,无 Swift 源码。

工作原理

  1. 内容以单一 Markdown 文件(README.md)编写,按分类段落组织应用名称、描述和链接。
  2. 运行 `npm run build` 调用 idoc(^1.26.5)在 dist 目录生成文档站点。
  3. 运行 `npm run create:ast`(build/ast.mjs)使用 remark(^14.0.2)和 remark-gfm(^3.0.1)解析 Markdown,将条目提取为结构化 JSON 对象并保存为 dist/awesome-mac.json 及各语言变体。
  4. 运行 `npm run feed`(build/feed.mjs)从解析后的目录数据生成订阅源。
  5. 生成的 JSON 文件通过 npm 包发布,提供英文(默认)、韩文(/ko)、日文(/ja)、中文(/zh)的命名导出。
  6. Dockerfile 将 dist 目录复制到 lipanski/docker-static-website 中,实现渲染站点的容器化静态托管。

产品演示与界面预览

Zipora: Zip/RAR/7Z 解压缩应用图标
Zipora——维护者在 README 中推广的 macOS 应用之一 — README 头部将维护者自有应用与赞助商链接并列推广,位于精选目录正文之上。 README.md image
Scap: macOS 截图与标注编辑应用图标
Scap——同一维护者开发的截图标注工具 — README 中维护者自有应用的推广徽章展示醒目,说明该目录兼具自我推广渠道的角色。 README.md image

如何获取和使用目录数据

  • npm 包:安装 `awesome-mac` 后通过 `import data from 'awesome-mac'` 或子路径 `import zhData from 'awesome-mac/zh'` 导入 JSON,导出路径由 package.json exports 字段定义。
  • 直接下载:从仓库直接获取 dist/awesome-mac.json(或 .ko.json、.ja.json、.zh.json),无需安装任何包。
  • 在线浏览:访问主页 https://git.io/macx 查看渲染后的静态站点。
  • Docker 自托管:使用仓库中的 Dockerfile 构建镜像,dist 目录会被复制到 lipanski/docker-static-website 中。
  • 从源码构建:克隆仓库后运行 `npm install && npm run start`,该命令会依次执行 idoc 构建和 AST 转 JSON。

许可证与维护风险

  • LICENSE 文件:声明 CC0 1.0 Universal,在法律允许的最大范围内放弃所有版权和相关权利。
  • package.json license 字段:设为 CC-BY-SA-4.0,要求署名和相同方式共享——与 CC0 声明直接冲突。
  • 构建工具依赖:idoc ^1.26.5、remark ^14.0.2、remark-gfm ^3.0.1、fs-extra ^10.1.0、to-vfile ^7.2.3,均锁定主版本。
  • 源包中未发现 CI/CD 配置;构建看起来是手动 npm 脚本调用。
  • 条目新鲜度完全依赖社区 Pull Request,没有自动化的死链检测或已弃用应用检查。

与同类项目的对比

  • Homebrew homebrew-cask:面向自动化的 Mac 应用命令行安装器,不是浏览发现目录——安装应用但不提供描述或分类推荐。
  • sindresorhus/awesome:覆盖全主题的 awesome-list 上游仓库,但没有 macOS 专用 JSON 分发或多语言导出。
  • AlternativeTo:提供用户评分和跨平台替代方案的 Web 服务,但不提供结构化 JSON 导出。
  • Setapp:精选 Mac 应用的付费订阅套装——商业产品,不是开放目录数据集。

集成前检查清单

  • 确认你计划再分发的 JSON 文件受哪个许可证(CC0 或 CC-BY-SA-4.0)约束,尤其是商业用途。
  • 检查 dist/awesome-mac.json 的条目结构——字段名、嵌套层级、分类组织方式——再编写消费代码。
  • 验证你需要的语言导出(en、zh、ko、ja)包含实质性翻译内容,而非英语回退。
  • 查看最近的 git 提交记录,区分内容更新(而非仅构建或依赖升级),评估条目新增和更新的频率。
  • 从与你项目相关的分类中抽查 10 个条目,确认链接有效且应用描述与当前实际情况一致。

谁适合关注

适合关注

  • 想要一个按类别组织的 macOS 应用参考目录,免去在 App Store 搜索结果中翻页的用户。
  • 正在构建 macOS 应用目录、比较网站或推荐引擎,需要结构化 JSON 输入的开发者。
  • 受益于中文、日文或韩文 JSON 导出而非仅限英语目录的国际化用户。
  • 维护内部推荐软件清单、需要一个带分类结构的 CC0 许可模板的团队。

可以先跳过

  • Linux 或 Windows 用户——目录仅收录 macOS 应用,无跨平台条目。
  • 需要质量评分、下载量、版本数据或价格信息的项目——目录仅提供名称、链接和简要描述。
  • 需要保证条目新鲜度或有自动化过期提醒的场景——目录中无单条目的最后验证时间元数据。
  • 对赞助密集型 README 布局敏感的读者——getapps.cafe、LIZHI.SHOP 和维护者自有应用的推广内容显著置于页面顶部。

风险与注意事项

目录是一个公开数据集,无需运维运行时服务;主要关注点在于 LICENSE 文件 CC0 与 package.json CC-BY-SA-4.0 之间的许可证冲突。

  • LICENSE 文件(CC0 1.0)与 package.json(CC-BY-SA-4.0)的许可证不匹配,对 JSON 数据的商业再分发造成不确定性。
  • 无自动化的新鲜度检查或单条目过期元数据——过时条目可能在无人注意的情况下长期存在。
  • README 头部的赞助商内容和维护者自有应用可能引入收录选择上的偏见。
  • npm 包依赖构建时工具链(idoc、remark、fs-extra),但消费者只需导入生成的 JSON,运行时风险极低。
  • 源包中未发现 CI/CD 配置,构建和发布依赖维护者手动操作。
  • 目录是静态数据集(Markdown 和 JSON);不存在运行时服务、身份认证系统或网络 API 可供攻击。
  • Docker 镜像基于 lipanski/docker-static-website,一个无应用逻辑或动态请求处理的极简静态文件服务器。
  • 消费方在将 JSON 中的应用链接渲染到用户可见界面前,应验证这些 URL 指向合法的厂商网站。
  • npm 包的主导出是 JSON 文件(dist/awesome-mac.json)而非可执行 JavaScript,降低了消费方的供应链攻击面。

替代方案比较

方案适用场景代价
Homebrew homebrew-cask
需要通过命令行安装和版本管理 macOS 应用,而非浏览发现目录。免费 / 开源
sindresorhus/awesome
需要覆盖全主题的 awesome-list 格式而非仅 macOS,且不需要 JSON 分发。免费 / CC0
AlternativeTo
需要用户评分、跨平台替代方案和带搜索功能的 Web 界面。免费(Web 服务)
Setapp
需要以商业产品形式交付的精选 Mac 应用订阅套装,而非开放目录。付费订阅

这个趋势说明了什么

基于 JSON 构建 macOS 应用比较工具

四种语言的 JSON 导出包含应用名称、描述、分类和链接,可用于比较或推荐引擎的数据源。结合 Mac App Store API 的价格数据,可产出比扁平目录更丰富的产品。

检查 dist/awesome-mac.json 确认条目结构包含足够字段(名称、描述、分类、URL),再编写消费代码。

生成本地化的 macOS 入职指南

en、zh、ko、ja 四语言 JSON 导出可按语言生成新员工或社区成员的设置指南,无需手动翻译。分类结构天然适合作为指南文档的章节标题。

抽查 zh、ko、ja JSON 文件确认包含翻译后的描述内容,而非英语回退,尤其是与你受众相关的分类。

结合 Homebrew Cask 自动化应用安装

将目录 JSON 与 Homebrew Cask formula 交叉比对,生成按分类安装精选应用的自动化脚本——例如一条命令安装所有开发者工具或设计应用。

将 dist/awesome-mac.json 中的应用名称与 Homebrew Cask cask 名称比对,计算重合比例后再投入脚本开发。

下一步建议

集成前先检查 JSON 结构

评估 awesome-mac 作为数据源最快的方式是下载或安装该包,然后检查 dist/awesome-mac.json 的结构是否符合你的项目需求。

  1. 运行 `npm install awesome-mac` 或直接从 GitHub 仓库下载 dist/awesome-mac.json。
  2. 打开 JSON 文件,记录顶层键名、条目结构和字段名。
  3. 从与你相关的分类中选取 5 个条目,确认数据格式满足需求。
  4. 如需非英文导出,打开 dist/awesome-mac.zh.json(或 .ko.json、.ja.json)检查翻译深度。
  5. 如计划商业再分发 JSON,通过 issue 或邮件联系维护者澄清许可证适用条款(CC0 还是 CC-BY-SA-4.0)。

RepoDaily 判断

awesome-mac 通过 npm 包发布四种语言的结构化 JSON,并附带 Docker 就绪的静态站点,超越了普通 awesome-list 的定位。LICENSE 文件 CC0 与 package.json CC-BY-SA-4.0 之间的许可证冲突是商业再分发前唯一需要解决的实质问题。作为浏览参考、研究素材或应用目录工具的起点,它结构清晰、实用性强,周期新增 334 Star,趋势榜第 17 名。

信息来源