命令行工具
gitify-app/gitify avatar
gitify-app/gitify

Gitify 评测:把 GitHub、GitLab、Gitea 的通知统一收进菜单栏

该项目围绕「Git notifications on your menu bar. Available on macOS, Windows & Linux.」构建,适用于实际场景的开源实践,提供可复用的工具链与集成方式。

5,343 个 Star290 个 ForkTypeScriptMIT

秒懂

它是什么?
Gitify 是一款跨平台菜单栏应用,聚合 GitHub、GitLab、Gitea、Bitbucket 等 Git 平台的通知。本文基于其 README 与仓库信息,分析它的适配器架构、安装方式、功能边界,以及哪些场景下它并不合适。
适合谁用?
Gitify 适合那些同时在多个 Git 平台上有账号、且希望在一个地方处理通知的开发者,尤其是 GitHub 重度用户。它不适合只需要单一平台通知、或者依赖 Azure DevOps 与 Gerrit 的用户,因为这两个适配器目前仍处于“考虑中”状态,没有任何可用功能。
能商用吗?
可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库最近一次提交在 5 天前。
用什么语言写的?
主要是 TypeScript(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月14日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决的是什么问题

开发者的通知分散在多个 Git 平台:GitHub 的 PR 评论、GitLab 的 merge request 更新、Gitea 的 issue 提醒,每个平台都有自己的网页和邮件通知。Gitify 把这些通知统一收进系统菜单栏或托盘,提供一个单一入口。它的目标用户很明确:同时使用多个 Git 托管服务的个人开发者或团队成员,不想为了看通知而切换多个标签页或安装多个客户端。README 中列出的支持范围包括 GitHub Cloud、GitHub Enterprise、Gitea、Forgejo、Codeberg、Bitbucket Cloud 和 GitLab,基本覆盖了主流选择。

适配器模式:多平台支持的核心机制

Gitify 没有为每个平台写死逻辑,而是采用 forge adapter pattern。代码目录 src/renderer/utils/forges/ 存放各个平台的适配器,每新增一个平台,需要实现对应的适配器并指定一名维护者。这个设计的好处是,新平台接入时不需要改动核心通知流程,只需适配平台的 API 差异。但代价也很明显:适配器的功能完整度取决于维护者的投入。README 中的功能矩阵清楚展示了这种差异,GitHub Cloud 支持全部功能,包括 mark done、unsubscribe 和 enriched details,而 Gitea 系只支持通知和 mark read。这不是缺陷,而是多平台项目的现实约束。

功能矩阵:每个平台的能力并不相同

GitHub Cloud 是功能最完整的,支持通知、标记已读、标记完成、取消订阅和富详情。GitLab Cloud 与自托管版本支持通知、标记已读、标记完成和富详情,但不支持取消订阅。Gitea、Forgejo、Codeberg 只支持通知和标记已读。Bitbucket Cloud 同样只支持这两项。GitHub Enterprise Server 3.13 以上版本与 Cloud 功能对齐,3.13 以下版本不支持 mark done。Azure DevOps 和 Gerrit 仍处于“考虑中”状态,表格中所有功能都是空白。如果你依赖这两个平台,Gitify 目前无法提供任何帮助。

安装与运行:从 Homebrew 到源码构建

普通用户最简单的安装方式是访问 gitify.io 下载对应平台的安装包。macOS 用户也可以使用 Homebrew,执行 brew install gitify。对于想参与开发的用户,README 给出了源码构建流程:pnpm install、pnpm build、pnpm dev。项目使用 pnpm 作为包管理器,TypeScript 为主要语言。构建过程需要 Node.js 环境,具体版本要求未在 README 中说明。如果你只是想用工具,直接下载安装包即可,不需要接触源码。

跨平台与原生体验的代价

Gitify 声称提供快速、原生的体验,支持 macOS、Windows 和 Linux。菜单栏应用在这三个平台上的行为并不一致,macOS 的菜单栏与 Windows 的托盘、Linux 的 app indicator 在交互细节上有差异。README 没有详细说明各平台的具体表现,但多平台桌面应用通常需要针对每个平台做适配。Electron 或 Tauri 的底层选择也未在 README 中提及,因此无法判断其内存占用或启动速度。如果你对原生体验有极高要求,可能需要先在自己的平台上试用再决定。

维护与升级:活跃的发布节奏

从仓库信息看,Gitify 的最近三次发布分别是 v7.7.0(2026-08-28)、v7.6.0(2026-08-26)和 v7.5.0(2026-08-24),间隔只有两到三天。这说明项目处于活跃开发状态,bug 修复和新功能迭代较快。项目启用了 Renovate 自动依赖更新,CI 和 Release 工作流都有 badge。MIT 许可证意味着你可以自由使用、修改和分发,但如果你自行编译,需要自己跟进上游更新。对于普通用户,官方发布包会自动更新(如果应用内支持),但 README 未明确说明更新机制。

替代方案:官方客户端与自建脚本

Gitify 的替代方案不是某个单一产品,而是一类做法。最直接的是使用各平台官方通知渠道,GitHub 的 web 通知页面、GitLab 的邮件通知,以及 Gitea 的 webhook。这些方案不需要额外安装应用,但无法统一查看。另一种做法是自建脚本,通过各平台的 API 拉取通知,然后发送到终端或消息机器人。这种方案灵活,但需要自己处理认证、轮询和去重。Gitify 的适配器模式本质上是在替你做这些工作,代价是你需要信任它的维护者。如果你的平台组合不在支持列表内,自建脚本可能是唯一选择。

编辑结论

Gitify 适合那些同时在多个 Git 平台上有账号、且希望在一个地方处理通知的开发者,尤其是 GitHub 重度用户。它不适合只需要单一平台通知、或者依赖 Azure DevOps 与 Gerrit 的用户,因为这两个适配器目前仍处于“考虑中”状态,没有任何可用功能。在采用前,请先确认你的平台组合:GitHub Enterprise Server 3.13 以下版本不支持 mark done,Gitea 系不支持 unsubscribe 与 enriched details,这些差异会直接影响工作流。安装方面,macOS 用户可直接执行 brew install gitify,其他平台需从官网下载。项目以 MIT 协议开源,更新频率较高(最近版本间隔约两天),但具体升级成本取决于你使用官方发布包还是自行编译。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记