Blog post: urfave/cli vs cobra, when to pick which #18

Closed
opened 2026-05-23 20:55:41 +00:00 by coilysiren · 1 comment
Owner

Originally filed by @coilysiren on 2026-05-03T19:53:21Z - https://github.com/coilysiren/website/issues/1342

🤖 Filed by Claude Code on Kai's behalf.

Working title: urfave/cli vs cobra, when to pick which

Hook: Two Go CLI frameworks dominate the ecosystem. Most people pick cobra by default. Here is the case for urfave/cli, the case for cobra, and the actual decision criteria, from a former urfave/cli maintainer.

Beats:

  • The split-brain in the Go CLI world.
  • urfave/cli's design choices (flag-first, middleware, no global state).
  • cobra's design choices (command-first, viper-coupled, generators).
  • What each is good at; what each is bad at.
  • Concrete decision matrix: small operator CLI, large multi-command tool, plugin host, kubectl-shaped.
  • Honest take on the maintainer experience and what's coming next in v3.

Why now: leans on credentials nobody else in the comparison space has. Cheap to write because the opinions are already formed.

Audience: Go programmers writing CLIs. Wide and persistent audience.

🤖 Filed by Claude Code on Kai's behalf.


Moved from coilysiren/coilyco-ai#15.

_Originally filed by @coilysiren on 2026-05-03T19:53:21Z - [https://github.com/coilysiren/website/issues/1342](https://github.com/coilysiren/website/issues/1342)_ > 🤖 Filed by Claude Code on Kai's behalf. **Working title:** urfave/cli vs cobra, when to pick which **Hook:** Two Go CLI frameworks dominate the ecosystem. Most people pick cobra by default. Here is the case for urfave/cli, the case for cobra, and the actual decision criteria, from a former urfave/cli maintainer. **Beats:** - The split-brain in the Go CLI world. - urfave/cli's design choices (flag-first, middleware, no global state). - cobra's design choices (command-first, viper-coupled, generators). - What each is good at; what each is bad at. - Concrete decision matrix: small operator CLI, large multi-command tool, plugin host, kubectl-shaped. - Honest take on the maintainer experience and what's coming next in v3. **Why now:** leans on credentials nobody else in the comparison space has. Cheap to write because the opinions are already formed. **Audience:** Go programmers writing CLIs. Wide and persistent audience. > 🤖 Filed by Claude Code on Kai's behalf. --- *Moved from coilysiren/coilyco-ai#15.*
Author
Owner

Iceboxed in the 2026-05-29 backlog burn-down: Speculative blog post draft. Reopen anytime if it becomes real.

Iceboxed in the 2026-05-29 backlog burn-down: Speculative blog post draft. Reopen anytime if it becomes real.
coilysiren 2026-05-30 05:43:02 +00:00
  • closed this issue
  • added the
    icebox
    label
Sign in to join this conversation.
No labels
icebox
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilysiren/website#18
No description provided.