{"id":13752032,"url":"https://github.com/zkokaja/Brewlet","last_synced_at":"2025-05-09T18:33:01.892Z","repository":{"id":43407153,"uuid":"239395816","full_name":"zkokaja/Brewlet","owner":"zkokaja","description":"The missing menulet for brew.sh: keeping your packages up-to-date, and your system secure.","archived":false,"fork":false,"pushed_at":"2024-06-17T12:52:53.000Z","size":710,"stargazers_count":446,"open_issues_count":15,"forks_count":12,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-05T04:12:59.682Z","etag":null,"topics":["brew","homebrew","macos","menubar-app","menulet","productivity"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zkokaja.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-10T00:18:00.000Z","updated_at":"2025-04-03T10:33:10.000Z","dependencies_parsed_at":"2024-06-17T14:30:24.164Z","dependency_job_id":null,"html_url":"https://github.com/zkokaja/Brewlet","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zkokaja%2FBrewlet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zkokaja%2FBrewlet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zkokaja%2FBrewlet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zkokaja%2FBrewlet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zkokaja","download_url":"https://codeload.github.com/zkokaja/Brewlet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253303205,"owners_count":21886907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["brew","homebrew","macos","menubar-app","menulet","productivity"],"created_at":"2024-08-03T09:00:58.403Z","updated_at":"2025-05-09T18:32:59.955Z","avatar_url":"https://github.com/zkokaja.png","language":"Swift","funding_links":[],"categories":["Developer Utilities","Swift"],"sub_categories":["Package Management"],"readme":"\u003ch1\u003e\n\u003cimg src=\"images/brewlet-color.svg\" alt=\"Brewlet Icon\" width=\"64px\" /\u003e\nBrewlet\n\u003c/h1\u003e\n\n\u003ca href=\"https://github.com/zkokaja/Brewlet/releases/latest\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/release/zkokaja/Brewlet.svg\" alt=\"GitHub Release\"/\u003e\n\u003c/a\u003e\n\nThe missing menulet for [brew.sh].\n\nThis menulet makes it easier to use [brew.sh]. For example, you need to\nmanually check if some of your packages can be updated. With Brewlet it's easy:\nif everything is working swimmingly, then you'll see the normal shadow \n\u003cimg src=\"images/brewlet-black.svg\" width=\"16px\" /\u003e \nicon. If updates are available to be installed, the icon will become colored,\n\u003cimg src=\"images/brewlet-color.svg\" width=\"16px\" /\u003e , to get your attention –\nalong with a notification if you wish.\nOnce clicked, you'll be able to upgrade your packages, among other options.\nIn addition, Brewlet will periodically check the status of packages in the\nbackground, so you don't have to.\n\n\u003cimg src=\"images/statusmenu-example.png\" width=\"300px\"/\u003e\n\nWhen new versions are available, you can update all of them at once or manually\nchoose specific packages:\n\n\u003cimg src=\"images/statusmenu-update.png\" width=\"532px\"/\u003e\n\n## Installation\n\nInstall with `brew` on the command line:\n```bash\nbrew install brewlet\n```\n\nOr download the latest version from \n[releases](https://github.com/zkokaja/Brewlet/releases/latest)\nor \n[here (zip)](https://github.com/zkokaja/Brewlet/releases/latest/download/Brewlet.zip).\n\nYou can upgrade to the latest version by running:\n```bash\nbrew update\nbrew upgrade brewlet\n```\n\n## On the horizon\n\nI am currently working on adding more features, listed in order of priority\nhere:\n\n- Ability to handle casks\n- Ability to install brew if not found\n- About page with detailed information\n- Features suggested by community (see Issues).\n\n## Update vs Upgrade\n\nThe `update` operation pulls the latest version of Homebrew and updates \nthe metadata related to packages. From the `man` pages:\n\n\u003e Fetch the newest version of Homebrew and all formulae from GitHub using git(1) and perform any necessary migrations.\n\nWhereas `upgrade` will actually upgrade your outdated packages to the latest\nversion(s).\n\n\u003e Upgrade outdated, unpinned formulae using the same options they were originally installed with, plus any appended brew formula options.\n\n## Developer\n\nContributions are welcome!\n\nYou can look for logged messages and errors with the Console app, \nor this command:\n\n```bash\n$ log show --predicate 'process == \"Brewlet\"' --info\n$ log show --predicate \"processID == `pgrep Brewlet`\" --info --last 1h\n```\n\nTo test for outdated packages, reinstall some older versions from a specific\ncommit. For example:\n\n```bash\n$ brew uninstall jq \n$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/b76347c21bbe20accf0a514b138515e30a48ad12/Formula/jq.rb\n```\n\nTo generate images of different sizes, use [Inkscape] on the command line:\n\n```bash\n$ len=64 # or use a for loop\n$ inkscape --export-type=\"png\" \\\n           --export-file brewlet-\"$len\".png \\\n           -w \"$len\" \\\n           brewlet.svg\n```\n\nBrew will redirect output of the `upgrade` command to a temporary file, you can\nuse this command to locate it.\n\n```bash\n$ find /var/folders -type f -name 'brewlet*log' 2\u003e /dev/null\n```\n\n## License \u0026 Acknowledgements\n\nBecause this app is closely tied to `brew.sh`, I used their icon as a template.\nI also decided to adopt their choice of license: BSD 2-Clause \"Simplified\" License.\n\n## Security \u0026 Permissions\n\nBrewlet needs to be able to access to:\n\n- the `brew.sh` shell script to get information and take action on your behalf.\n- access to write to your Downloads folder when exporting a list of packages.\n- permissions to send you notifications when updates are available, and when unexpected errors occur.\n\n[brew.sh]: https://brew.sh\n[Inkscape]: https://inkscape.org\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzkokaja%2FBrewlet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzkokaja%2FBrewlet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzkokaja%2FBrewlet/lists"}