https://github.com/zaydiscold/sup
one command to update every package manager and dev tool. 49 tools. single bash script.
https://github.com/zaydiscold/sup
ai-tools bash cli devtools homebrew linux macos package-manager updater
Last synced: 12 days ago
JSON representation
one command to update every package manager and dev tool. 49 tools. single bash script.
- Host: GitHub
- URL: https://github.com/zaydiscold/sup
- Owner: zaydiscold
- License: mit
- Created: 2026-03-04T05:50:29.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-03-05T02:02:56.000Z (4 months ago)
- Last Synced: 2026-03-05T07:12:00.972Z (4 months ago)
- Topics: ai-tools, bash, cli, devtools, homebrew, linux, macos, package-manager, updater
- Language: Shell
- Homepage: https://zayd.wtf
- Size: 78.1 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
sup
single command that updates every package manager and dev tool on your system.
what it does · install · usage · what's inside
## what it does
sup detects every package manager and developer tool on your machine and updates them all. one command. no config files. no dependencies beyond bash 4.
built this because running `brew update && brew upgrade && rustup update && npm update -g && pipx upgrade-all && ...` every morning was getting old. 49 tools. one word.
## install
```bash
curl -fsSL https://raw.githubusercontent.com/zaydiscold/sup/main/install.sh | bash
```
or
```bash
brew install zaydiscold/tap/sup # homebrew
```
or
```bash
npm install -g @zaydiscold/sup # npm
```
or
```bash
curl -fsSL -o sup.sh https://github.com/zaydiscold/sup/releases/latest/download/sup.sh
chmod +x sup.sh
mv sup.sh ~/.local/bin/sup # direct download
```
or
```bash
git clone https://github.com/zaydiscold/sup
```
note: requires bash 4+. macos ships 3.2 by default. run `brew install bash` first if you're on a mac.
## usage
```
sup # detect + confirm + update everything
sup --list # show all 49 supported tools
sup --dry-run # show what would run, change nothing
sup --interactive # tui picker (gum > fzf > builtin)
sup --only claude --only uv # just these two
sup --skip homebrew # everything except homebrew
sup --yes # skip confirmation (scripts/ci)
sup --self-update # update sup itself (checksum verified)
sup --verbose # show commands as they run
sup config # preferences menu (type 1-7, enter)
```
`--skip` and `--only` are repeatable. `--skip` wins if both target the same tool. `--dry-run` overrides `--yes`.
`--interactive` opens a selector where you pick which tools to update. uses `gum choose --no-limit` if installed, falls back to `fzf --multi`, then to a pure bash arrow-key selector with space-to-toggle.
`sup config` is a numbered menu. lets you toggle cleanup, homebrew greedy casks, auto-retry, and a skip list. preferences save to `~/.config/sup/preferences`.
## what's inside
single file. ~1700 lines. no external dependencies. works on macos and linux.
**49 tools across 8 tiers:**
**system** //
- homebrew, homebrew casks, apt, snap, flatpak, mac app store, macos system updates
**languages** //
- rustup, uv, pipx, conda, mamba, pyenv, asdf, mise
**node** //
- npm globals, pnpm, bun, deno
**ai tools** //
- claude code, gemini cli, ollama, goose, amazon q, aider, open interpreter, huggingface cli, github copilot, codex cli
**dev clis** //
- github extensions, vercel, firebase, supabase, railway, fly.io, wrangler, gcloud, terraform
**editors** //
- vs code extensions, vs code insiders, vscodium
**shell** //
- oh-my-zsh, oh-my-bash, fisher, tmux plugins
**other** //
- rubygems, composer, cargo crates, go binaries
each tool gets auto-detected, run with a timeout, auto-retried on transient failures, and classified on error. failures don't block other tools. the summary tells you what to fix manually.
self-update downloads from github releases and verifies sha-256 checksums before replacing the binary. if sup was installed via homebrew it redirects you to `brew upgrade sup`.
**exit codes**
| code | meaning |
|------|---------|
| 0 | everything updated successfully, or nothing needed updating |
| 1 | one or more tools failed to update. check the summary for details |
| 3 | bash version too old. requires 4.0+, macos ships 3.2 by default |
| 130 | interrupted by ctrl+c. cleanup runs automatically |
mit. license
zayd / cold
zayd.wtf · twitter · github
icarus only fell because he flew
to do
☑ 49 tools across 8 tiers
☑ --interactive tui (gum / fzf / builtin)
☐ --json output for scripting
☐ ollama model updates
☐ docker image updates