核心用法
agentcli-go 是一个 Go 语言 CLI 工具开发框架,主要提供以下能力:
1. 项目脚手架 - 通过 ScaffoldNew() 快速生成标准化项目结构,包含 main.go、cmd/、internal/、pkg/ 等目录布局,内置 Taskfile 和测试模板。
2. 命令扩展 - ScaffoldAddCommand() 支持预设模板(file-sync、http-client、deploy-helper),一键添加子命令。
3. 配置管理 - configx 模块实现分层配置(Defaults < File < Env < Flags),支持 JSON 文件和环境变量自动解析。
4. 生命周期钩子 - RunLifecycle 提供 Preflight/Postflight 接口,便于植入前置检查和后置清理逻辑。
5. Cobra 集成 - cobrax 包简化 cobra 命令树构建,自动绑定持久标志(--verbose、--config、--json、--no-color)。
显著优点
- 标准化输出:强制统一项目结构,降低团队协作成本
- 零配置启动:预置 CI/CD 任务链(task ci / verify / smoke)
- 依赖精简:仅依赖 zerolog、lo、cobra 三个外部库
- 类型安全:配置解码支持泛型
Decode[T]()
潜在局限
- pre-1.0 阶段:API 可能不稳定,存在破坏性变更风险
- Go 专属生态:不适用于其他语言项目
- 预设模板有限:仅 3 种命令预设,复杂场景需自行扩展
适合人群
- 需要快速启动 Go CLI 项目的开发团队
- 追求代码规范一致性的中型组织
- 熟悉 Cobra 但希望减少样板代码的开发者
常规风险
- 框架升级时需关注 breaking changes(v0.x.y 语义)
log.Fatal在部分辅助函数中的使用可能中断控制流- 过度依赖脚手架可能导致业务逻辑与框架耦合