Skip to content

[packmind-cli] Have a HomeBrew formula to install the CLI #191

@davidaparicio

Description

@davidaparicio

Description

Add an official Homebrew tap to distribute the Packmind CLI on macOS and Linux, allowing users to install and update it via brew.

Demonstration/Example

Thanks to this repo: https://github.com/davidaparicio/homebrew-packmind, I was able to install packmind-cli with these commands, instead the classical curl <URL> | sh

❯ brew tap davidaparicio/packmind
brew install packmind-cli
✔︎ JSON API formula.jws.json                          Downloaded   31.9MB/ 31.9MB
✔︎ JSON API cask.jws.json                             Downloaded   15.4MB/ 15.4MB
==> Tapping davidaparicio/packmind
Cloning into '/opt/homebrew/Library/Taps/davidaparicio/homebrew-packmind'...
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 7 (delta 0), reused 7 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (7/7), done.
Tapped 1 formula (15 files, 17KB).
==> Fetching downloads for: packmind-cli
✔︎ Formula packmind-cli (0.20.0)                      Verified    100.8MB/100.8MB
==> Installing packmind-cli from davidaparicio/packmind
🍺  /opt/homebrew/Cellar/packmind-cli/0.20.0: 4 files, 100.9MB, built in 1 second
==> Running `brew cleanup packmind-cli`...
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).

homebrew-packmind on  main via 💎 v2.6.10 took 6m34s
❯ packmind-cli --help
packmind-cli <subcommand>
> Packmind CLI tool
where <subcommand> can be one of:

Use Case

Currently, installing the Packmind CLI requires piping a shell script from the internet:

curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/PackmindHub/packmind/main/apps/cli/scripts/install.sh | sh

This approach is fine for quick onboarding but is not ideal for teams and developers who:

  • Manage their toolchain with Homebrew
  • Want reproducible, auditable installs
  • Need easy upgrades via brew upgrade
  • Use tools like brew bundle / Brewfile to declare dependencies

Proposed Solution

Publish an official Homebrew tap (e.g. PackmindHub/packmind) with a formula for packmind-cli.

Installation would become:

brew tap PackmindHub/packmind
brew install packmind-cli

The tap would include:

  • A Formula/packmind-cli.rb targeting existing release assets (macOS arm64, Linux x64/arm64) already published on GitHub Releases under the release-cli/X.Y.Z tags
  • A GitHub Actions workflow to automatically bump the formula and open a PR on every new CLI release

A working proof of concept is already available, including:

  • The Homebrew formula with correct SHA-256 checksums for all platforms
  • The automated bump workflow using repository_dispatch to trigger on new releases
  • A README.md for the tap repository

Alternatives Considered

  • Keeping the curl | sh installer only — works but not idiomatic for Homebrew users and harder to audit.
  • Submitting to homebrew-core — requires significant project notoriety and a stricter review process; a dedicated tap is faster to ship and easier to maintain.

TODO

  • Documentation updated
  • Update changelog

Metadata

Metadata

Assignees

Labels

ongoingCore team is working on this issue

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions