O kingpin (github.com/alecthomas/kingpin/v2) modela CLIs como uma cadeia fluente: aplicação, comandos aninhados, flags tipadas, argumentos posicionais e enums validados antes que sua Action seja executada.
Ele influenciou frameworks posteriores e continua útil para ler ferramentas legadas.
O repositório upstream está arquivado; novas CLIs "greenfield" devem padronizar em cobra ou urfave/cli, mas os padrões de UX do kingpin (parsing tipado, args obrigatórios, restrições de enum) ainda se aplicam em todos os lugares.
Upstream arquivado - Correções de segurança podem atrasar; planeje a migração para ferramentas distribuídas externamente. Correção: acompanhe problemas de paridade com cobra em um ticket e congele novos comandos kingpin.
Acoplamento de ordem de inicialização - Variáveis globais app tornam o teste sensível à ordem. Correção: envolva parse + ação em funções que aceitam []string.
Enum em flag não definida - Enums obrigatórios devem ter padrões ou ser flags obrigatórias. Correção: documente os valores válidos nas strings de ajuda.
Mistura de kingpin e flag stdlib - Dois parsers brigam por os.Args. Correção: um framework por binário.
Aninhamento excessivo de comandos - Árvores profundas prejudicam a descoberta. Correção: achate verbos ou adicione grupos baseados em tópicos na ajuda.
Versões de Stack: Esta página foi escrita para Go 1.26.x (GC padrão Green Tea, go fix modernizers - verifique o patch na compilação), chi (última - verifique na compilação), gin (última - verifique na compilação), echo (última - verifique na compilação), google.golang.org/grpc (última - verifique na compilação), sigs.k8s.io/controller-runtime (última - verifique na compilação), kubebuilder (última - verifique na compilação), tinygo (última - verifique os alvos de placa na compilação), wazero (última - verifique na compilação) e golangci-lint (última - verifique o conjunto de linters na compilação).
pbqrthvqrf.vb|ptvb432|202607
Revisado por Chris St. John·Última atualização: 19 de jul. de 2026