gf vs gh / glab — 如何选择?
gh 与 glab 是 GitHub / GitLab 官方的单一平台 CLI;gf 是在它们之上的一层工程化编排:统一命令面、 AI Agent Skills 与四阶段工作流。三者不是替代关系,而是分层协作。
一览对比
六个维度快速对比。gf 在底层复用 gh / glab / gitcode,因此它们恰恰是 gf 的能力底座。
| 维度 | gf | gh | glab |
|---|---|---|---|
| 平台支持 | GitHub / GitLab / GitCode 三大平台统一封装。基于 git remote 自动检测,也可 --platform 手动指定。 | 仅 GitHub(含 Enterprise) | 仅 GitLab(含自建实例) |
| 命令面 | 同一套命令在三个平台行为一致,如 gf issue list。一条命令打天下,无需记两套 CLI。 | GitHub 原生命令面,生态最丰富(gh extensions)。 | GitLab 原生命令面。 |
| Agent 集成 | 26 个 gf-* Skills,一键安装到 Claude Code / Codex / Gemini / Copilot / OpenCode,Agent 开箱即用。 | 可被 Agent 调用,但无配套 Skills 编排。 | 可被 Agent 调用,但无配套 Skills 编排。 |
| 工作流编排 | 四阶段编排:需求澄清 → 计划制定 → 执行 → 交付后检查,内置质量门禁。 | 无编排,需自行组合脚本。 | 无编排,需自行组合脚本。 |
| 输出格式 | json / text / toon(Agent 专用 token 优化,省 60–90% token)。 | JSON / markdown / 表格。 | JSON / markdown / 表格。 |
| 安装方式 | brew tap byx-darwin/tap && brew install gf 或 cargo install gf;底层复用 gh / glab / gitcode。 | brew / 官方安装脚本 / 各平台包管理器。 | brew / 官方安装脚本 / 各平台包管理器。 |
什么时候选 gf
以下场景,gf 的价值最明显:
多平台混用
GitHub + GitLab(甚至 GitCode)同时在手?gf 一套命令统一三平台,不再记两套 CLI、两套语法。
Agent 驱动开发
想让 Claude Code / Codex 等 Agent 自己走完 Issue → PR → Review → Release,而不是只帮你敲 gh 命令。
工程纪律与质量门禁
四阶段工作流 + build → test → coverage → fmt → static → pre-commit 门禁,交付质量有底线。
团队标准化
Skills 随仓库走(.claude/skills/),新人 clone 即开箱即用,全员工作流一致。
节省 token 预算
toon 输出针对 Agent 消费优化,命令交互省 60–90% token,长会话成本更低。
平台迁移成本
从 GitHub 迁到 GitLab 或反过来,gf 命令面不变,改造面最小。
什么时候继续用 gh / glab
gf 不是要消灭 gh / glab,而是承接它们之上的编排层。以下情况请放心留在官方 CLI:
- gh extensions 生态:gh 独有的扩展体系(如 gh copilot、gh browse 等社区扩展)是 gf 未封装的能力,此时直接使用 gh。
- 长尾参数与独有特性:gf 封装的是跨平台常用子集;需要底层 CLI 独有参数/特性时,随时直接调用 gh / glab 原生命令。
- 纯单平台、无 Agent 需求:只在一个平台上做常规操作,不需要工作流编排时,gh / glab 更轻、更直接。
- 存量脚本 / CI 基于 gh / glab:已有自动化不必迁移;gf 与 gh / glab 并存,互不干扰。
从 gh / glab 迁移到 gf
gf 底层依赖 gh / glab,因此迁移不需要卸载它们——安装 gf 后两者共存。
1. 安装 gf
无需删除 gh / glab。gf 启动时会校验底层 CLI 版本,不满足时给出修复指引。
2. 认证
使用 gf auth login 完成各平台认证,或在已有 gh / glab 凭据基础上直接使用。
3. 命令迁移
把脚本里的 gh 换成 gf,命令面基本一一对应:
| 场景 | gh | gf | 说明 |
|---|---|---|---|
| 列出 Issue | gh issue list | gf issue list | 自动检测平台 |
| 创建 Issue | gh issue create | gf issue create | 语法一致 |
| 创建 PR | gh pr create | gf pr create | 语法一致 |
| 列出 PR | gh pr list | gf pr list | 语法一致 |
| 合并 PR | gh pr merge 123 | gf pr merge 123 | 语法一致 |
| 审查 PR | gh pr review --approve | gf review approve 123 | 独立的 review 命令面 |
| 创建 Release | gh release create v1.0.0 | gf release create v1.0.0 | 语法一致 |
| 克隆仓库 | gh repo clone owner/repo | gf repo clone owner/repo | 语法一致 |
| 查看流水线 | gh run view | gf pipeline status | 独立 pipeline 命令面 |
| 登录认证 | gh auth login | gf auth login | 语法一致 |
glab 用户同理:glab issue list → gf issue list,
glab mr create → gf pr create,
glab pipeline status → gf pipeline status。
4. 安装 Skills
把工作流装进 Agent:
gf skills install — 项目级(跟随仓库)
gf skills install -g — 全局(所有项目可用)
5. 进入四阶段工作流
在支持的 Agent 平台中输入 /gf-workflow,即可跑通需求澄清 → 计划制定 → 执行 → 交付后检查。
gh extensions 仍然可随时通过 gh 调用——gf 不接管 gh 的扩展生态,两者并行。
选 gf,把工程循环交给 Agent。
MIT License · Rust 2024 · 支持 GitHub / GitLab / GitCode 三大平台