golang-cli

Revisar · 67
Indexado en Registry

Golang CLI application development. Use when building, modifying, or reviewing a Go CLI tool — especially for command structure, flag handling, configuration layering, version embedding, exit codes, I/O patterns, signal handling, shell completion, argument validation, and CLI uni

Verified installs0
Estrellas3.0K
Versión1.0.0
Calidad82/100 · Sólido
Confianza67/100 · Solo sandbox
Auditoría82/100 · Requiere revisión

Perfil del activo

Agents de programación y desarrollo

Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.

Ver categoría

Escenario

GitHub automation

I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.

Afinidad con Agent

Claude Code + OpenAI Agents + CLI

Funciona con Codex, Claude Code, Cursor, CLI o Agents personalizados.

Instalar

Listo

npx skills add samber/cc-skills-golang --skill golang-cli

Mantenimiento

Actual

2 días desde el último push

Riesgo

Requiere revisión

Dependency or permission surface needs review

Calidad de GitHub

3.0K

82/100 Calidad · 75/100 Confianza

Etiquetas de cobertura

CodingGitHub automationInvestigaciónagent-skill

Notas de revisión

Dependency or permission surface needs review · Permission surface may require sandboxing

Tarjeta de adopción del Agent

Confianza, auditoría y preparación de instalación de un vistazo

Estas puntuaciones combinan metadatos públicos del repositorio, señales de revisión de OpenAgentSkill, actualidad de mantenimiento y preparación de instalación. Sirven para preseleccionar; no sustituyen la revisión humana.

Calidad

Sólido
82

Solid option that is likely worth shortlisting for production workflows.

Confianza

Solo sandbox
67

Candidata útil con señales de confianza incompletas o mixtas. Manténgala en un espacio aislado hasta que el ciclo de resultados demuestre el ajuste.

Auditoría

Requiere revisión
82

Revisión legible por máquina de la preparación de instalación, los metadatos de seguridad, el mantenimiento y el riesgo de adopción.

Trust Score de OpenAgentSkill v5

Revisión humana antes de instalar

Ejecute solo en un sandbox y compare alternativas cercanas antes de usarla en trabajo real.

CodexClaude CodeCursorOpenAgentSkill CLI

Estrellas

3.0K estrellas de GitHub

Actividad del repositorio

3.0K estrellas y 197 forks

Mantenimiento

2 días desde el último push

Licencia

MIT

Instalar

npx skills add samber/cc-skills-golang --skill golang-cli

Seguridad de instalación

Ruta estándar de paquete o instalación en tiempo de ejecución

Superficie de permisos

secrets or environment access, shell or command execution

Resultados del Agent

Aún no hay datos de resultados del Agent

Documentación

Contexto sólido de README/SKILL.md

Resumen de riesgo

Revisar antes de producción

  • Quality score needs review
  • Permission surface needs review: secrets or environment access, shell or command execution
  • Dependency/runtime risk: command execution surface, credential or environment access
  • Permission surface: secrets or environment access, shell or command execution

Preparación de instalación

Ruta de instalación disponible

  • La ruta de instalación está disponible
  • La evidencia del repositorio está disponible
  • La licencia está declarada
  • Aún no hay evidencia de resultados Agent-Proven

Metadatos legibles por Agent

Datos de decisión legibles por máquina para este skill.

Usa este bloque o el JSON integrado para decidir si un Agent debe instalar este skill, elegir una alternativa o pedir revisión humana primero.

Abrir JSON

Tareas adecuadas

  • flujos de GitHub automation
  • Equipos de Claude Code
  • Equipos que valoran señales de adopción de GitHub
  • Inspect repository metadata

Agents adecuados

CodexClaude CodeCursorOpenAgentSkill CLIOpenAI AgentsCLI

Decisión de instalación

Comando
npx skills add samber/cc-skills-golang --skill golang-cli
Política
Revisar
Revisión humana

Confianza y riesgo

Confianza
67/100
Auditoría
82/100
Nivel de riesgo
Requiere revisión

Ciclo de resultados

Endpoint
/api/agent/outcome
ID del evento
resolve
Resultados
5

Comando de instalación

npx skills add samber/cc-skills-golang --skill golang-cli

No usar cuando

  • Equipos que necesitan un SLA con soporte del proveedor
  • Entornos de alta conformidad sin revisión interna de seguridad
  • No major risk signals from current metadata
  • Indicios de permisos de alto riesgo: Shell or command execution, Secrets or environment access
  • Dependency or permission surface needs review

Seguridad de Agent v2

38/100 · Evitar instalación automática

ExperimentalRevisar

Sparse or mixed signals. Useful for discovery, but not for autonomous installation.

Test manually in an isolated workspace and compare against safer alternatives.

Resolver con API

Alto

Ejecución de shell o comandos

Los metadatos del skill hacen referencia a terminal, CLI, shell, subprocesos o flujos de ejecución de comandos.

Medio

Acceso a red

El skill probablemente consulta páginas remotas, API, repositorios o servicios externos.

Medio

Acceso al sistema de archivos

El skill puede leer o escribir archivos de proyecto, documentos, artefactos generados o estado local.

Alto

Secrets or environment access

Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.

  • Indicios de permisos de alto riesgo: Shell or command execution, Secrets or environment access
  • Dependency or permission surface needs review

Destinos de instalación

Instala este skill en tu flujo de Agent

Usa el endpoint público para obtener el comando, la lista de seguridad, prompts y enlaces canónicos.

skill install

OpenAgentSkill CLI

Resolve policy, run the source installer safely, and report a verified install receipt.

$ npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.2.1/openagentskill-0.2.1.tgz install samber-golang-cli

Plan de resolución de Agent

Deja que un Agent valide el ajuste antes de instalar.

La API Resolve devuelve la skill elegida, alternativas, política de seguridad, notas de auditoría, destino de instalación y un prompt listo para usar.

Abrir plan de texto

Agent debe revisar

  • Task fit and alternatives from Resolve API.
  • Audit score, trust score, and safety policy warnings.
  • Install target compatibility for Codex, Claude Code, Cursor, or CLI.

Copiar prompt

Task: Use golang-cli in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20golang-cli%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/samber-golang-cli/install
Install command: npx skills add samber/cc-skills-golang --skill golang-cli
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.

Traspaso de Agent

Da al Agent la ruta de instalación, no otro directorio.

Usa el endpoint público para obtener el comando, la lista de seguridad, prompts y enlaces canónicos.

Abrir API de instalación

Prompt de Agent

Use golang-cli for this task. Review https://www.openagentskill.com/api/skills/samber-golang-cli/install, then install with: npx skills add samber/cc-skills-golang --skill golang-cli

Metadatos del Registry

Perfil legible por Agent para seleccionar skills automáticamente.

La API Registry expone señales de decisión, confianza, auditoría, casos de uso e instalación sin raspar la interfaz.

Abrir Manifest

Afinidad con Agent

95/100

GitHub automation

Plataformas

Claude Code, OpenAI Agents

Informe de auditoría

Requiere revisión · 82/100

Revisión legible por máquina de la preparación de instalación, los metadatos de seguridad, el mantenimiento y el riesgo de adopción.

Ver informe de auditoríaVer informe de evaluación

Panel de decisión de Agent

Elección principal para GitHub automation

Use this as a leading candidate, then validate the README and install path in your own agent stack.

95
Preparación
Adoptar
Etapa

Rol en la pila

Elección principal

Ajuste principal

GitHub automation

Etiqueta de confianza

Listo para producción

Ruta de instalación

Comando listo

Úsalo cuando

  • flujos de GitHub automation
  • Equipos de Claude Code
  • Equipos que valoran señales de adopción de GitHub

Evidencia

  • 3,010 estrellas de GitHub
  • recent repository activity
  • install command or GitHub repo available
  • perfil de calidad 82/100
  • 6 eventos de interacción de OpenAgentSkill

revisar primero

  • No major risk signals from current metadata

Ruta de implementación

  1. 1Instálalo en un Agent de sandbox y ejecuta una tarea de GitHub automation de principio a fin.
  2. 2Compare output quality, latency, and failure behavior against at least one alternative.
  3. 3Promote it into production only after reviewing repository permissions, license, and maintenance signals.

Perfil de confianza

Solo sandbox

Candidata útil con señales de confianza incompletas o mixtas. Manténgala en un espacio aislado hasta que el ciclo de resultados demuestre el ajuste.

67
Trust Score de OpenAgentSkill

Adopción en GitHub

Aprobado

3.0K estrellas de GitHub

Actividad de stars/forks

Info

3.0K estrellas y 197 forks; la actividad de issues no está disponible en los metadatos actuales

Mantenimiento reciente

Aprobado

2 días desde el último push

Claridad de licencia

Aprobado

MIT

Señales positivas

  • Revisión de IA aprobada
  • La ruta de instalación está disponible
  • La evidencia del repositorio está disponible
  • Repositorio mantenido recientemente
  • Señal significativa de adopción en GitHub
  • El comando de instalación no muestra un patrón de alto riesgo evidente
  • El ciclo de resultados está listo, pero necesita la primera ejecución real de Agent

Revisar antes de instalar

  • Quality score needs review
  • Permission surface needs review: secrets or environment access, shell or command execution
  • Dependency/runtime risk: command execution surface, credential or environment access
  • Permission surface: secrets or environment access, shell or command execution
  • Aún no hay informes reales de resultados del Agent
  • Se requiere revisión humana antes de una instalación desatendida

Acción recomendada

Ejecute solo en un sandbox y compare alternativas cercanas antes de usarla en trabajo real.

Perfil de calidad

Sólido candidato para flujos de Agent

Solid option that is likely worth shortlisting for production workflows.

82
Estrellas de GitHub
3.0K
Actualidad
hace 2 días
Listo para instalar
Licencia
MIT

Ajuste de flujo

Usa esta skill en estos escenarios

Ajuste de flujo

Añadir a un flujo completo

Lista de alternativas

Compara antes de instalar

Similar skills that may fit this task.

Comparar todo

Resumen

--- name: golang-cli description: "Golang CLI application development. Use when building, modifying, or reviewing a Go CLI tool — especially for command structure, flag handling, configuration layering, version embedding, exit codes, I/O patterns, signal handling, shell completion, argument validation, and CLI unit testing. Also triggers when code uses cobra, viper, or urfave/cli. For cobra-specific APIs → See `samber/cc-skills-golang@golang-spf13-cobra` skill; for viper configuration layering → See `samber/cc-skills-golang@golang-spf13-viper` skill." user-invocable: true license: MIT compatibility: Designed for Claude Code, Codex or similar harness, and for projects using Golang. metadata: author: samber version: "1.3.0" openclaw: emoji: "💻" homepage: https://github.com/samber/cc-skills-golang requires: bins: - go install: [] allowed-tools: Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent AskUserQuestion paths: - "**/*.go" ---

**Persona:** You are a Go CLI engineer. You build tools that feel native to the Unix shell — composable, scriptable, and predictable under automation.

**Modes:**

- **Build** — creating a new CLI from scratch: follow the project structure, root command setup, flag binding, and version embedding sections sequentially. - **Extend** — adding subcommands, flags, or completions to an existing CLI: read the current command tree first, then apply changes consistent with the existing structure. - **Review** — auditing an existing CLI for correctness: check the Common Mistakes table, verify `SilenceUsage`/`SilenceErrors`, flag-to-Viper binding, exit codes, and stdout/stderr discipline.

# Go CLI Best Practices

Use Cobra + Viper as the default stack for Go CLI applications. Cobra provides the command/subcommand/flag structure and Viper handles configuration from files, environment variables, and flags with automatic layering. This combination powers kubectl, docker, gh, hugo, and most production Go CLIs.

When using Cobra or Viper, refer to the library's official documentation and code examples for current API signatures.

For trivial single-purpose tools with no subcommands and few flags, stdlib `flag` is sufficient.

## Quick Reference

| Concern | Package / Tool | | ------------------- | ------------------------------------ | | Commands & flags | `github.com/spf13/cobra` | | Configuration | `github.com/spf13/viper` | | Flag parsing | `github.com/spf13/pflag` (via Cobra) | | Colored output | `github.com/fatih/color` | | Table output | `github.com/olekukonko/tablewriter` | | Interactive prompts | `github.com/charmbracelet/bubbletea` | | Version injection | `go build -ldflags` | | Distribution | `goreleaser` |

## Project Structure

Organize CLI commands in `cmd/myapp/` with one file per command. Keep `main.go` minimal — it only calls `Execute()`.

``` myapp/ ├── cmd/ │ └── myapp/ │ ├── main.go # package main, only calls Execute() │ ├── root.go # Root command + Viper init │ ├── serve.go # "serve" subcommand │ ├── migrate.go # "migrate" subcommand │ └── version.go # "version" subcommand ├── go.mod └── go.sum ```

`main.go` should be minimal — see [assets/examples/main.go](assets/examples/main.go).

## Root Command Setup

The root command initializes Viper configuration and sets up global behavior via `PersistentPreRunE`. See [assets/examples/root.go](assets/examples/root.go).

Key points:

- `SilenceUsage: true` MUST be set — prevents printing the full usage text on every error - `SilenceErrors: true` MUST be set — lets you control error output format yourself - `PersistentPreRunE` runs before every subcommand, so config is always initialized - Logs go to stderr, output goes to stdout

## Subcommands

Add subcommands by creating separate files in `cmd/myapp/` and registering them in `init()`. See [assets/examples/serve.go](assets/examples/serve.go) for a complete subcommand example including command groups.

## Flags

See [assets/examples/flags.go](assets/examples/flags.go) for all flag patterns:

### Persistent vs Local

- **Persistent** flags are inherited by all subcommands (e.g., `--config`) - **Local** flags only apply to the command they're defined on (e.g., `--port`)

### Required Flags

Use `MarkFlagRequired`, `MarkFlagsMutuallyExclusive`, and `MarkFlagsOneRequired` for flag constraints.

### Flag Validation with RegisterFlagCompletionFunc

Provide completion suggestions for flag values.

### Always Bind Flags to Viper

This ensures `viper.GetInt("port")` returns the flag value, env var `MYAPP_PORT`, or config file value — whichever has highest precedence.

## Argument Validation

Cobra provides built-in validators for positional arguments. See [assets/examples/args.go](assets/examples/args.go) for both built-in and custom validation examples.

| Validator | Description | | --------------------------- | ------------------------------------ | | `cobra.NoArgs` | Fails if any args provided | | `cobra.ExactArgs(n)` | Requires exactly n args | | `cobra.MinimumNArgs(n)` | Requires at least n args | | `cobra.MaximumNArgs(n)` | Allows at most n args | | `cobra.RangeArgs(min, max)` | Requires between min and max | | `cobra.ExactValidArgs(n)` | Exactly n args, must be in ValidArgs |

## Configuration with Viper

Viper resolves configuration values in this order (highest to lowest precedence):

1. **CLI flags** (explicit user input) 2. **Environment variables** (deployment config) 3. **Config file** (persistent settings) 4. **Defaults** (set in code)

See [assets/examples/config.go](assets/examples/config.go) for complete Viper integration including struct unmarshaling and config file watching.

### Example Config File (.myapp.yaml)

```yaml port: 8080 host: localhost log-level: info database: dsn: postgres://localhost:5432/myapp max-conn: 25 ```

With the setup above, these are all equivalent:

- Flag: `--port 9090` - Env var: `MYAPP_PORT=9090` - Config file: `port: 9090`

## Version and Build Info

Version SHOULD be embedded at compile time using `ldflags`. See [assets/examples/version.go](assets/examples/version.go) for the version command and build instructions.

## Exit Codes

Exit codes MUST follow Unix conventions:

| Code | Meaning | When to Use | | ----- | ----------------- | ----------------------------------------- | | 0 | Success | Operation completed normally | | 1 | General error | Runtime failure | | 2 | Usage error | Invalid flags or arguments | | 64-78 | BSD sysexits | Specific error categories | | 126 | Cannot execute | Permission denied | | 127 | Command not found | Missing dependency | | 128+N | Signal N | Terminated by signal (e.g., 130 = SIGINT) |

See [assets/examples/exit_codes.go](assets/examples/exit_codes.go) for a pattern mapping errors to exit codes.

## I/O Patterns

See [assets/examples/output.go](assets/examples/output.go) for all I/O patterns:

- **stdout vs stderr**: NEVER write diagnostic output to stdout — stdout is for program output (pipeable), stderr for logs/errors/diagnostics - **Detecting pipe vs terminal**: check `os.ModeCharDevice` on stdout - **Machine-readable output**: support `--output` flag for table/json/plain formats - **Colors**: use `fatih/color` which auto-disables when output is not a terminal

## Signal Handling

Signal handling MUST use `signal.NotifyContext` to propagate cancellation through context. See [assets/examples/signal.go](assets/examples/signal.go) for graceful HTTP server shutdown.

## Shell Completions

Cobra generates completions for bash, zsh, fish, and PowerShell automatically. See [assets/examples/completion.go](assets/examples/completion.go) for both the completion command and custom flag/argument completions.

## Testing CLI Commands

Test commands by executing them programmatically and capturing output. See [assets/examples/cli_test.go](assets/examples/cli_test.go).

Use `cmd.OutOrStdout()` and `cmd.ErrOrStderr()` in commands (instead of `os.Stdout` / `os.Stderr`) so output can be captured in tests.

## Common Mistakes

| Mistake | Fix | | --- | --- | | Writing to `os.Stdout` directly | Tests can't capture output. Use `cmd.OutOrStdout()` which tests can redirect to a buffer | | Calling `os.Exit()` inside `RunE` | Cobra's error handling, deferred functions, and cleanup code never run. Return an error, let `main()` decide | | Not binding flags to Viper | Flags won't be configurable via env/config. Call `viper.BindPFlag` for every configurable flag | | Missing `viper.SetEnvPrefix` | `PORT` collides with other tools. Use a prefix (`MYAPP_PORT`) to namespace env vars | | Logging to stdout | Unix pipes chain stdout — logs corrupt the data stream for the next program. Logs go to stderr | | Printing usage on every error | Full help text on every error is noise. Set `SilenceUsage: true`, save full usage for `--help` | | Config file required | Users without a config file get a crash. Ignore `viper.ConfigFileNotFoundError` — config should be optional | | Not using `PersistentPreRunE` | Config initialization must happen before any subcommand. Use root's `PersistentPreRunE` | | Hardcoded version string | Version gets out of sync with tags. Inject via `ldflags` at build time from git tags | | Not supporting `--output` format | Scripts can't parse human-readable output. Add JSON/table/plain for machine consumption |

## Related Skills

See `samber/cc-skills-golang@golang-project-layout`, `samber/cc-skills-golang@golang-dependency-injection`, `samber/cc-skills-golang@golang-testing`, `samber/cc-skills-golang@golang-design-patterns` skills.

Detalles técnicos

Versión
1.0.0
Licencia
MIT
Última actualización
20 ago 2026
Publicado
20 ago 2026

Resumen de decisión

Elección principal

95
Listo
Adoptar
Etapa

3,010 estrellas de GitHub

Auditoría

Revisión de instalación

Revisión de instalación y adopción

82
Requiere revisión
Seguridad
74/100
Mantenimiento
100/100
Instalar
92/100
Abrir auditoría completaVer informe de evaluación

Evidencia probada por Agent

Evidencia probada por Agent

Informes de resultados tras resolver, revisar, instalar y una ejecución limitada.

0
Probado
Needs first agent runAuto-instalación: revisar primeroÚltimo: Desconocido
Tasa de éxito
Fallo reciente
Resultados
0
Calidad de salida
Fallidos
0
No relevante
0
Instalaciones
0
Bloqueado por riesgo
0
Configuración necesaria
0
Producción
0

Aún no hay datos de resultados de Agent. La primera ejecución puede informar éxito, configuración necesaria, bloqueos de riesgo, fallo o irrelevancia mediante /api/agent/outcome.

Instalar

Añadir al flujo de Agent

Gratis y de código abierto. Revisa el informe antes de instalar en Agents de producción.

Bucle de crecimiento

Kit para compartir

X

Borrador basado en un caso para golang-cli, listo para publicar manualmente en X.

Nota del curador
golang-cli: Golang CLI application development. Use when building, modifying, or reviewing a Go CLI tool...

3.0K stars

https://www.openagentskill.com/skills/samber-golang-cli?ref=x
Abrir borrador de X
Respuesta opcional con comando de instalación
Listing + install path for golang-cli:
https://www.openagentskill.com/skills/samber-golang-cli?ref=x

Install: npx skills add samber/cc-skills-golang --skill golang-cli

Fuente de la ficha

Indexado por Registry

Reclamable

Esta ficha se indexó desde fuentes públicas y no está marcada como oficial hasta que se apruebe una reclamación de mantenedor.

Creador
samber
Indexado por
Índice comunitario de OpenAgentSkill

La atribución enlaza al repositorio público o al perfil del creador. Los creadores pueden reclamar la ficha para actualizar las señales de propiedad.

Reclamar este skill

Reclamación del propietario

Reclamar esta ficha de skill

Esta ficha Indexado por Registry se atribuye a samber, pero aún no está marcada como oficial. Reclámala para añadir una señal de propietario verificado y hacer más fiables futuras actualizaciones de lanzamiento, instalación y auditoría.

Kit de enlaces para creadores

Añade las insignias de evidencia a tu README

Muestra la ficha canónica, las señales actuales de confianza y auditoría, y evidencia real de Agent-Proven donde los desarrolladores evalúan el repositorio.

[![Listed on OpenAgentSkill](https://www.openagentskill.com/api/badge/samber-golang-cli?metric=listed&label=Listed)](https://www.openagentskill.com/skills/samber-golang-cli)
[![OpenAgentSkill Trust](https://www.openagentskill.com/api/badge/samber-golang-cli?metric=trust&label=Trust)](https://www.openagentskill.com/skills/samber-golang-cli)
[![OpenAgentSkill Audit](https://www.openagentskill.com/api/badge/samber-golang-cli?metric=audit&label=Audit)](https://www.openagentskill.com/skills/samber-golang-cli/audit)
[![Agent Proven](https://www.openagentskill.com/api/badge/samber-golang-cli?metric=proven&label=Agent%20Proven)](https://www.openagentskill.com/skills/samber-golang-cli)

Autor

S

samber

@samber

Etiquetas

Afinidad con plataforma

Señales de salud

Estrellas de GitHub
3.0K
Puntuación de calidad
48/100
Último push de GitHub
20 ago 2026
Pistas del framework
Desconocido
Vistas de OpenAgentSkill
6
Copias de instalación
0
Clics externos
0

Señal de comunidad

Comparte si este skill resulta útil para tu flujo de Agent. Los comentarios agregados mejoran la clasificación con el tiempo.

Confianza y seguridad

Solo sandbox

67
  • Adopción en GitHub3.0K estrellas de GitHubAprobado
  • Actividad de stars/forks3.0K estrellas y 197 forks; la actividad de issues no está disponible en los metadatos actualesInfo
  • Mantenimiento reciente2 días desde el último pushAprobado
  • Claridad de licenciaMITAprobado
  • Completitud de README/SKILL.mdLos metadatos incluyen suficiente contexto de uso y flujo de trabajoAprobado
  • Riesgo de dependencias/runtimecommand execution surface, credential or environment accessCorregir