搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

spf13/cobra

开发工具

面向 Go 开发者的命令行库,用于构建带子命令、POSIX 标志、帮助和 Shell 补全的现代 CLI。

44,796
4,477
Go
Apache-2.0
创建于 13 年前

项目介绍

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 管理。

  1. 把库加入当前模块:

    go get -u github.com/spf13/cobra@latest
    
  2. 在代码中导入:

    import "github.com/spf13/cobra"
    
  3. 定义根命令和需要的子命令,最后调用 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 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Cobra v1.5.0 Is Released
▲ 4 · 0 条评论 · 2022年6月21日
Cobra: A Commander for Modern Go CLI Interactions
▲ 3 · 0 条评论 · 2018年3月2日
Cobra: Build Modern CLI Apps in Go
▲ 2 · 0 条评论 · 2016年4月18日