id = "gup" name = "gup" homepage = "https://github.com/nao1215/gup" description = "Fast manager for Go-installed binaries in $GOBIN: update, export/import, and migrate toolsets across machines." executables = ["gup"] [dotfiles] # https://github.com/nao1215/gup — the official README documents the default # user config as $XDG_CONFIG_HOME/gup/gup.json (normally ~/.config/gup/gup.json). paths = ["[configHome]/gup/gup.json"] secret = [] side_effect = false [commands] format = 1 label = "Update Go tools" description = "Update the Go binaries in GOBIN with `gup update`, optionally only named tools or excluding some. Pin, import/export and other subcommands are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.source]] id = "readme" kind = "manual" url = "https://github.com/nao1215/gup/blob/main/README.md" revision = "main 2026-10" evidence = """ `gup update` updates every binary under `$GOBIN`, in parallel. $ gup update subaru gup ubume $ gup update --exclude=gopls,golangci-lint //--exclude or -e, this example will exclude 'gopls' and 'golangci-lint' Also works in combination with --dry-run. - `--main` (`-m`): update by `@main` - `--master`: update by `@master` - `--latest`: update by `@latest` $ gup update --main=gup,lazygit --master=sqly --latest=air """ [[commands.field]] id = "subcommand" label = "Subcommand" fixed = ["update"] sources = ["readme"] [[commands.field]] id = "binaries" label = "Binaries" description = "Leave empty to update everything." type = "string" position = 0 multiple = true sources = ["readme"] [[commands.field]] id = "exclude" label = "Exclude" description = "Comma-separated names, no spaces." type = "string" option = ["--exclude", "-e"] sources = ["readme"] [[commands.field]] id = "dry_run" label = "Dry run" type = "boolean" option = ["--dry-run"] sources = ["readme"] [[commands.field]] id = "main" label = "Update from @main" description = "Comma-separated tool names." type = "string" option = ["--main", "-m"] sources = ["readme"] [[commands.field]] id = "master" label = "Update from @master" description = "Comma-separated tool names." type = "string" option = ["--master"] sources = ["readme"] [[commands.field]] id = "latest" label = "Update from @latest" description = "Comma-separated tool names." type = "string" option = ["--latest"] sources = ["readme"] [[commands.task]] id = "update_all" label = "Update all tools" fields = ["subcommand"] required = ["subcommand"] [[commands.task]] id = "preview" label = "Preview update" fields = ["subcommand", "dry_run", "exclude"] required = ["subcommand"] set = { dry_run = [true] } [[commands.group]] id = "basic" label = "Basic" fields = ["subcommand", "binaries", "exclude", "dry_run"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["main", "master", "latest"]