spf13/cobra
开发工具面向 Go 开发者的命令行库,用于构建带子命令、POSIX 标志、帮助和 Shell 补全的现代 CLI。
项目介绍
Cobra 是一个 Go 命令行库,把应用组织成命令、参数和标志三部分。它推荐的形式是 APPNAME VERB NOUN --ADJECTIVE 或 APPNAME COMMAND ARG --FLAG,让命令行读起来像句子;README 用 hugo server --port=1313 和 git clone URL --bare 说明这种结构。
它支持多级子命令、POSIX 兼容的短标志和长标志(由 pflag 提供)、全局与局部标志、命令别名、拼写建议、自动帮助、bash/zsh/fish/PowerShell 补全、man 手册生成,并可选与 viper 集成以支持 12-factor 配置。它适合需要固定命令行结构、不想手写参数解析的 Go 开发者。Kubernetes、Hugo、GitHub CLI 等项目都在使用,仓库维护了更长的使用项目列表。
快速使用
前提是已安装 Go 工具链,并且应用已作为 Go module 管理。
-
把库加入当前模块:
go get -u github.com/spf13/cobra@latest -
在代码中导入:
import "github.com/spf13/cobra" -
定义根命令和需要的子命令,最后调用
Execute()。具体命令和标志的写法见 Cobra 用户指南 与cobra.Command参考。
如果希望直接生成项目骨架,而不是手写命令文件,可以另装生成器:
go install github.com/spf13/cobra-cli@latest
生成器用法见 Cobra-CLI README,README 没有在这里重复列出生成命令。更完整的文档在 cobra.dev。
使用约束
- 库面向 Go 应用,安装命令默认使用 Go modules。
- 标志行为来自 pflag,它是标准
flag包的 POSIX 风格分支,因此语义可能与只基于标准库的实现不同。 - 生成器
cobra-cli是独立仓库,需要单独安装,不属于库本身。 - Cobra 使用 Apache 2.0 许可证,具体条款以
LICENSE.txt为准。
HotRepo 点评
2026-11-06,Cobra 出现在 Go 语言日榜,净增 128 Star,当天在该榜的最好名次为第 20 名。站内没有记录它的全部语言日榜名次,也没有找到相关讨论帖,因此可用证据只有这一条语言榜快照。它不足以说明长期趋势,但能说明这个长期存在的 Go 命令行库当时在 Go 生态中仍保持着日常关注度。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。