Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. gup

gup

Apache-2.0Gov1.1.4

A fast, parallel command-line tool to update Go binaries installed via 'go install'.

GitHubGitHub
576 stars27 forks0 contributors

What is gup?

gup is a command-line utility designed to manage and update Go binaries installed via `go install`. It addresses the common need to keep these tools current, offering a streamlined and efficient alternative to manual updates. The tool is cross-platform, running on Linux, macOS, and Windows.

Target Audience

Go developers who frequently install and manage command-line tools via `go install` and need an efficient way to keep them updated across multiple systems.

Value Proposition

Developers choose gup for its parallel updates using goroutines for speed, granular control over specific binaries, and features like export/import configuration for synchronizing tools across machines, which simplifies maintenance compared to manual updates.

Overview

gup - Update binaries installed by "go install" with goroutines.

Use Cases

Best For

  • Updating all Go-installed binaries in parallel for significant speed improvements.
  • Managing specific Go binaries with selective update, list, check, or remove operations.
  • Synchronizing installed Go binaries across multiple development environments using export/import configuration files.
  • Controlling update channels per binary (e.g., @latest, @main, @master) and persisting these preferences.
  • Generating shell completion scripts and man pages for better CLI integration and documentation.
  • Receiving desktop notifications for update success or failure to monitor update processes without manual checking.

Not Ideal For

  • Environments without Go installed, as gup requires the go command internally for updates.
  • Developers who exclusively manage tools via system package managers (e.g., apt, yum, brew) and avoid go install.
  • Projects needing to update binaries from non-Git sources or those installed via methods other than go install.

Pros & Cons

Pros

Parallel Update Speed

Uses goroutines to update all binaries concurrently, making it significantly faster than manual sequential updates, as highlighted in the README with examples like updating 30 binaries in parallel.

Granular Binary Control

Offers subcommands for update, list, check, and remove with options like --exclude and per-binary targeting, allowing precise management without affecting all tools.

Cross-Environment Sync

Export/import feature via JSON config files (e.g., gup.json) enables easy synchronization of Go binaries and their versions across multiple development machines, as demonstrated in the README's export/import examples.

Flexible Update Channels

Supports per-binary update channels (@latest, @main, @master) with persistence in gup.json, letting users control update sources for specific tools, as shown in the --main, --master options.

Cons

Go Dependency Requirement

Relies on the Go toolchain being installed, as the README states it uses the go command internally, making it unusable in environments without Go or where Go is not desired.

Breaking Configuration Changes

Version 1.0.0 introduced a breaking change by switching from gup.conf to gup.json format, which could disrupt existing setups and require manual migration, as noted in the README's breaking change section.

Limited to Go-installed Binaries

Only manages binaries installed via go install, excluding tools installed through other package managers or direct downloads, which restricts its utility for mixed tooling environments.

Frequently Asked Questions

Quick Stats

Stars576
Forks27
Contributors0
Open Issues2
Last commit1 month ago
CreatedSince 2022

Tags

#cli-app#hacktoberfest#developer-tools#binary-management#command-line-tool#golang#cross-platform#package-manager#user-friendly#updater#go#automation#golang-tools#update

Built With

G
Go

Included in

Go169.1k
Auto-fetched 22 hours ago

Related Projects

syftsyft

CLI tool and library for generating a Software Bill of Materials from container images and filesystems

Stars8,944
Forks858
Last commit2 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub