Skip to main content

Pick outdated Homebrew and Mac App Store items to upgrade or uninstall

Project description

freshenup

Pick outdated Homebrew formulae and casks — and, optionally, outdated Mac App Store apps and mise tools — from an fzf menu, then upgrade or uninstall them.

A formula node is a top-level (leaf) formula that is outdated itself or has outdated dependencies beneath it; a cask or App Store app is a standalone node. Everything starts selected. Keys are shown in the fzf header. App Store rows show a slugified name; the numeric id drives the action via mas (which needs root, so a sudo prompt appears only when an App Store row is selected). mise tools (global config only, via mise outdated -C /) are standalone nodes that upgrade within their configured version range; they can't be uninstalled from here.

Install

uv tool install freshenup   # install, or `uvx freshenup` to run without installing
uv tool upgrade freshenup   # update

Usage

freshenup          # scan and pick
freshenup -u       # force `brew update` first (brew otherwise auto-refreshes at most once/24h)
  • enter — upgrade the selected nodes
  • ctrl-x — uninstall the highlighted node (confirmed)
  • tab — toggle selection
  • ctrl-t — invert selection

Dependencies

  • fzf 0.53+ — the interactive picker (brew install fzf)
  • Homebrew
  • Python 3.14+ and pydantic (installed automatically with the package)
  • Optional: mas for Mac App Store support (detected at runtime)
  • Optional: mise for dev-tool/runtime updates (detected at runtime; global config only)

Development

Managed with uv; lint/format with Ruff, type-checked with pyright (strict).

uv sync              # create the venv and install deps
uv run pytest        # run tests
uv run ruff check    # lint
uv run ruff format   # format
uv run pyright       # type-check (strict)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freshenup-3.1.0.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

freshenup-3.1.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file freshenup-3.1.0.tar.gz.

File metadata

  • Download URL: freshenup-3.1.0.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for freshenup-3.1.0.tar.gz
Algorithm Hash digest
SHA256 7622498da26cf3941b3714d9f76b27ebc9d3b0fd97c304c8e4d50923b0c564e2
MD5 b57690e5b70e8b37f91d44812c57a682
BLAKE2b-256 d23dadc5725e76978d89e821b56048ad22cd11aabc0c0f9cd9470b96784f8d50

See more details on using hashes here.

File details

Details for the file freshenup-3.1.0-py3-none-any.whl.

File metadata

  • Download URL: freshenup-3.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for freshenup-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e62900a0aa2244631e736b94f1321673e43a0e6c91a964e5006216b23fd1e49
MD5 5c7348d21f0946f57f424a2c89ee7036
BLAKE2b-256 0bb6a230d4d55ddc61745b70093c6414999ea53790b30969b832ca41563e6063

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page