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:
masfor 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f88fa4b3dd5d7046bd54c8b12b429c40d7c7d7e4cd7236a8ff90f303e41cb5c9
|
|
| MD5 |
83027e822522f4935f0f7718515add59
|
|
| BLAKE2b-256 |
01f925f11f02f675f2f57e3be1be5571a0da9f91ffd2bab594eb3cc3886d6bd1
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1561b0171b71418e4ad08c8a5e2a0a9a0a3d6d6df2d1b49de33853dfcab6cc3
|
|
| MD5 |
ffa18ac40948b9330c332bb245750f04
|
|
| BLAKE2b-256 |
724415ffdc4827496bba2117208a148dc9f1ef8cb81864991abc3ff46f09603f
|