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 — 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).

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)

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.0.1.tar.gz (23.0 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.0.1-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: freshenup-3.0.1.tar.gz
  • Upload date:
  • Size: 23.0 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.0.1.tar.gz
Algorithm Hash digest
SHA256 4c5de556ba8afd617edfe6d69813bb338dfc40c1a7a22b5e18599cc7ea97905a
MD5 da6745e91e43932ecbadcd4aa3d2394a
BLAKE2b-256 f91d1fdfcc22c375f885753cf69f9cedbee1305fe434e9d640736131e025d856

See more details on using hashes here.

File details

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

File metadata

  • Download URL: freshenup-3.0.1-py3-none-any.whl
  • Upload date:
  • Size: 12.4 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.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9567318c52928e5bd944284d0cc1c4ff563cafa11ff6647cb68f1650d2685874
MD5 52b50932dbcf169cd3af1e5977513862
BLAKE2b-256 b0c8be073eb14cba146dcde4c31cb15889383fe7a25513d127fb6fa0d512d067

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