cargo-update is a community-maintained Cargo subcommand that manages updates for binaries installed with cargo install.
It is not part of the official Cargo distribution, but it’s widely trusted and behaves like a native command after installation.
cargo install cargo-update
Once installed, it exposes a new subcommand:
cargo install-update
This naming pattern (cargo-*) is how Cargo automatically recognizes external plugins.
Any binary named cargo-foo can be run as cargo foo.
| Command | Description |
|---|---|
cargo install-update -a |
Update all installed Cargo binaries |
cargo install-update atuin |
Update only the specified package |
cargo install-update --list |
Show available updates |
cargo install-update -a --force |
Rebuild everything even if versions match |
The -a (or --all) flag tells cargo-update to update every binary managed by cargo install.
It reads your installed package list from:
~/.cargo/.crates.toml
Without -a, you’d need to name each crate individually:
cargo install-update atuin cargo-update ripgrep
# Install the plugin (one time only)
cargo install cargo-update
# Check what can be updated
cargo install-update --list
# Update all installed Cargo tools
cargo install-update -a
- Scope: Only affects binaries installed via
cargo install(e.g., CLI tools). - Does not touch: System libraries, dependencies, or Cargo core itself.
- Rebuilds: Each updated crate from source, so expect CPU usage.
- Data storage: Keeps metadata in
~/.cargo/.crates.tomland~/.cargo/.crates2.json.
cargo-updateis not official, so it’s absent from the Rust-lang.org docs.- Its docs live on developer platforms with weak SEO:
- The command name (
install-update) overlaps with other package managers (Homebrew, apt, etc.), which confuses search results.
Confirm installation and version:
cargo search cargo-update
cargo install-update --version
List all Cargo plugins on your system:
ls ~/.cargo/bin | grep cargo-
| Aspect | Description |
|---|---|
| Official? | No — community-maintained plugin |
| Trust level | High; long-term stable crate |
| Purpose | Updates globally installed Cargo binaries |
| Pattern | cargo install cargo-update → cargo install-update |
| Docs | Available on crates.io, docs.rs, GitHub |
| Safe to use? | Yes, limited to Cargo-managed binaries |
Last verified: October 2025