package plugin
Deep detail lives on pkg.go.dev; the conceptual distinction is in About plugins vs predictors.
Loader functions
Section titled “Loader functions”Each function is a plugin func(*conga.App[T]) — apply with app.Use(...):
| Plugin | Package | Registers |
|---|---|---|
system.User |
plugin/system |
OS user lookup type |
system.Group |
plugin/system |
OS group lookup type |
system.Signal |
plugin/system |
syscall.Signal parsing + completion |
timezone.Location |
plugin/timezone |
*time.Location parsing + IANA completion |
network.Interface |
plugin/network |
Network interface type |
app := conga.New[CLI]().Name("opsctl").Use(system.Signal, timezone.Location)Plugin contract
Section titled “Plugin contract”A plugin is any function that mutates the *App[T] builder — typically by calling app.RegisterType to bind a parser (and optionally conga.WithPredictor) for a type:
func Signal[T any](app *conga.App[T]) { app.RegisterType(parseSignal, conga.WithPredictor(system.Signals()))}Write your own the same way to ship reusable type support in libraries.