Skip to content

zaydiscold/sup

Repository files navigation

sup

sup

single command that updates every package manager and dev tool on your system.

bash version site

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

curl -fsSL https://raw.githubusercontent.com/zaydiscold/sup/main/install.sh | bash

or

brew install zaydiscold/tap/sup     # homebrew

or

npm install -g @zaydiscold/sup      # npm

or

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

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

bash curl shellcheck


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


·



star history chart

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





About

one command to update every package manager and dev tool. 49 tools. single bash script.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors