Repolode
urfave

urfave/cli

用于构建命令行工具的 Go 声明式库,支持子命令、参数与 shell 补全。

Star
24,291
Fork
1,923
未关闭 Issue
30
最近提交
3小时前

这是什么?

urfave/cli 是一个用于构建命令行应用的 Go 库,通过声明式的方式定义命令、子命令和参数,解析、路由及帮助信息输出由库自动处理。

它支持命令别名与前缀匹配,支持 -abc 形式的组合短参数,参数类型包括基础类型、切片、时间和时长等。可为 bash、zsh、fish 和 PowerShell 提供动态 shell 补全。除 Go 标准库外没有其他依赖。

参数值既可来自命令行、环境变量和纯文本文件,也可通过配套的 urfave/cli-altsrc 模块读取 JSON、TOML、YAML 等结构化配置。man 手册与 Markdown 文档生成由 urfave/cli-docs 模块提供。

核心功能

  • 01支持命令与子命令,可设置别名并支持前缀匹配
  • 02为 bash、zsh、fish 和 PowerShell 提供动态 shell 补全
  • 03支持 -abc 形式的组合短参数
  • 04支持基础类型、切片、时间和时长等参数类型
  • 05可从环境变量、文本文件及 JSON、TOML、YAML 读取输入
  • 06除 Go 标准库外无其他依赖

适用场景

  • 用 Go 构建带子命令和类型化参数的命令行工具
  • 为已有 CLI 添加 shell Tab 补全
  • 从环境变量或 YAML、TOML 配置文件中读取命令行选项

标签

常见问题

cli 是什么?
用于构建命令行工具的 Go 声明式库,支持子命令、参数与 shell 补全。 urfave/cli 是一个用于构建命令行应用的 Go 库,通过声明式的方式定义命令、子命令和参数,解析、路由及帮助信息输出由库自动处理。
cli 可以免费使用吗?用的什么许可证?
cli 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
cli 还在维护吗?
活跃维护中。cli 最近一次提交是在 2026年10月19日。
cli 适合用来做什么?
用 Go 构建带子命令和类型化参数的命令行工具 为已有 CLI 添加 shell Tab 补全 从环境变量或 YAML、TOML 配置文件中读取命令行选项
在哪里获取 cli?
源代码和安装说明在 GitHub 上:https://github.com/urfave/cli

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目