go-update is a Go package for building self-updating command-line programs and other single-file targets. It lets an application replace its own executable with a newer version while keeping update logic inside the program. The package supports different update experiences, including automatic background updates and user-triggered manual updates. It also includes advanced capabilities such as binary patching, checksum verification, and code-signing verification for safer updates. go-update is useful for developers distributing Go binaries who want users to stay current without manually downloading every release. It is especially relevant for CLI tools, desktop helpers, agents, and long-running utilities that need controlled, secure update behavior.
Features
- Self-updating Go binaries
- Executable replacement workflow
- Automatic or manual update support
- Binary patching capability
- Checksum and signature verification
- Single-file target updates