homebrew-google-terminal-search
Homebrew tap that installs google-terminal-search with one brew install
git clone https://github.com/fernando-moretes/dot-homebrew-google-terminal-search.gitListen to guide
generated on playGenerated only on first play
Powered by Amazon Polly + OmniVoice
This repository is the Homebrew tap for google-terminal-search: a Ruby formula that turns "clone, install dependencies, create an alias" into a single brew install — and that upgrades through the same brew upgrade that maintains the rest of the machine.
What it is and why it exists
google-terminal-search is a command-line tool of mine for running Google searches without leaving the terminal. It lives in another repository; this one contains not a single line of the tool itself. What it contains is the formula: a Ruby file that tells Homebrew where to download the published release, how to verify the artifact's sha256, which dependencies to resolve, and where to place the binary on the PATH.
The reason it exists is maintenance, not convenience. Installing a CLI via git clone works on day one; ten months later nobody remembers where the clone is, which version is running, or whether the alias in .zshrc still points to the right place. Every tool I use daily pays that cost — the only question is whether it stays visible.
With a tap, Homebrew owns the lifecycle: brew install installs, brew upgrade updates, brew uninstall removes cleanly, and brew list --versions answers "which version is here?" in one line. The formula is the contract between the tool's repository and the machine of whoever installs it. Keeping the formula in its own repository is a Homebrew convention — a tap has to be a Git repository that brew can clone and read on its own.
How a brew install travels through this repository
The tap is only the pointer. The tool's code comes from the release; Homebrew verifies the hash before installing.
- brew CLI · resolve tap + fórmula
- Cellar + symlink · /opt/homebrew/bin
- dot-homebrew-google-terminal-search · Formula/*.rb
- google-terminal-search · release tarball + sha256
The repository name carries a dot- prefix
The brew tap user/name shorthand only works when the repository is named exactly homebrew-name. This one is named dot-homebrew-google-terminal-search — the prefix came from the migration of the repositories into the organization. Practical consequence: brew tap fernando-moretes/google-terminal-search on its own does not resolve. Pass the full URL to brew tap, as in the steps below. It is the kind of failure that misreports itself: the error says "repository not found" and you lose ten minutes suspecting the network.
Install and use
- 1
Add the tap by its full URL
brew tap fernando-moretes/google-terminal-search https://github.com/fernando-moretes/dot-homebrew-google-terminal-search. Homebrew clones the repository into$(brew --repository)/Library/Taps/and starts seeing the formula. - 2
Install the formula
brew install google-terminal-search. If another tap ships a formula with the same name, qualify it:brew install fernando-moretes/google-terminal-search/google-terminal-search. - 3
Check what got installed
brew info google-terminal-searchshows version, origin and dependencies;which google-terminal-searchconfirms the symlink is on thePATH. - 4
Upgrade with everything else
brew update && brew upgrade google-terminal-search.brew updatepulls the tap; the new formula points at the new version. - 5
Remove without leftovers
brew uninstall google-terminal-searchand, if you no longer want the tap,brew untap fernando-moretes/google-terminal-search.
# 1. tap pela URL completa (o repositório não segue o nome homebrew-<x>)
brew tap fernando-moretes/google-terminal-search \
https://github.com/fernando-moretes/dot-homebrew-google-terminal-search
# 2. instalar
brew install google-terminal-search
# 3. conferir
brew info google-terminal-search
which google-terminal-search
# 4. manter
brew update && brew upgrade google-terminal-searchHow the formula works
A Homebrew formula is a Ruby class that inherits from Formula. The fields doing the work: url points at the artifact of one specific version (release tarball or Git tag), sha256 pins the hash the download must match, depends_on declares what must exist first, and install says where each file goes — typically bin.install "google-terminal-search". A test do block closes the loop: brew test runs the installed tool and fails if it does not answer.
Security: the sha256 is what prevents installing a swapped artifact. If the hash does not match, Homebrew aborts before executing anything. That is why a formula should never point at main without a hash — "always grab the latest" costs you the guarantee that what you installed is what was published.
Versioning: the version the formula installs is the one written in it. Releasing the tool does not update this tap by itself; someone — or a workflow — has to change url and sha256 and commit. That is this repository's real maintenance cost: small per release, but recurring.
Pipeline: the repository follows the platform conventions — <type>/<scope> branches, Conventional Commits, version derived from commits. pr-lint, CI and the security check come from reusable workflows; fixing the bar means changing one file there, not here.
What this tap gives you
brew that maintains the rest of the machine — no stray clone to remember later.sha256 verification on every download: an artifact that differs from the published one does not install.brew uninstall, no residue in .zshrc or ~/bin.Testing a formula change before opening a PR
Edit the file inside the already-cloned tap (cd $(brew --repository)/Library/Taps/fernando-moretes/homebrew-google-terminal-search), then run brew install --build-from-source google-terminal-search, brew test google-terminal-search and brew audit --strict google-terminal-search. audit catches what the eye misses: missing hash, non-HTTPS URL, fields out of order. Only then open the fix/ or chore/ branch.
Frequently asked questions
Why not publish straight to homebrew-core?
homebrew-core requires notability (stars, forks, age) and maintainer review on every version. For a personal tool with one active user, a self-hosted tap delivers the same brew install without the queue — and without depending on third parties to ship a version.
Does it work on Linux?
Homebrew runs on Linux (Linuxbrew), and the formula works if the artifact and its dependencies do. I do not test that combination regularly; treat it as unsupported until there is a green test do on a Linux runner.
What happens if the tool releases a version and the tap is not updated?
Nothing breaks — you keep the version the formula pins. That is the intended behavior: the formula is a pin, not a mirror. The update is a commit in this repository swapping url and sha256.
References
Verdict
Use this tap when you are on macOS (or Linuxbrew), want google-terminal-search as part of the machine rather than a clone that ages, and accept that the installed version is the one the formula pins. If you are developing the tool itself, clone its repository — the tap is for consuming, not editing. And if you have other CLIs of your own with published releases, the larger value is in the skeleton: a formula this size costs less to maintain than the alias you would write in .zshrc and forget in three months.
Architecture, AWS, AI and market deep dives — straight to your inbox. Free.
No spam · unsubscribe anytime