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

brew install akirayamamoto/tap/freshenup

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 — the interactive picker (installed automatically via Homebrew)
  • Python 3.14+ and pydantic (bundled by the Homebrew install)
  • Homebrew
  • 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.0.tar.gz (25.2 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.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: freshenup-3.0.0.tar.gz
  • Upload date:
  • Size: 25.2 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.0.tar.gz
Algorithm Hash digest
SHA256 f88fa4b3dd5d7046bd54c8b12b429c40d7c7d7e4cd7236a8ff90f303e41cb5c9
MD5 83027e822522f4935f0f7718515add59
BLAKE2b-256 01f925f11f02f675f2f57e3be1be5571a0da9f91ffd2bab594eb3cc3886d6bd1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: freshenup-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 11.8 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b1561b0171b71418e4ad08c8a5e2a0a9a0a3d6d6df2d1b49de33853dfcab6cc3
MD5 ffa18ac40948b9330c332bb245750f04
BLAKE2b-256 724415ffdc4827496bba2117208a148dc9f1ef8cb81864991abc3ff46f09603f

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