ghcask
Chinese

Homebrew command for local casks

Install Mac apps from any release.

ghcask turns GitHub Releases and direct package URLs into local Homebrew casks, so apps from outside the public Cask index can still use the same install, update, reinstall, inspect, and cleanup workflow.

Why ghcask?

More apps, one Homebrew workflow

Skip the index wait

Install apps through Homebrew even when they are not listed in the public Cask index or GitHub is not their download home.

Replace manual installs

Stop hunting release pages, downloading packages by hand, and dragging apps into place. Use one command instead.

Manage the full lifecycle

Keep install, update, reinstall, inspect, uninstall, and cleanup in one terminal workflow.

Control release tracks

Try prereleases, pin known-good versions, and return to the saved release track when you are ready.

Move to a new Mac

Carry generated casks to another Mac with Brewghcask.json and keep Brewfile restores predictable.

Stay in control

Use generated local casks without waiting for public cask review or publishing personal definitions.

Install and update

Release-aware commands you can actually run

Install a release app

brew tap oxsean/ghcask
brew ghcask install owner/repo

Install from a URL

brew ghcask install cask-name \
  --url https://example.com/download/Example-1.2.3.dmg

Pin or switch tracks

brew ghcask install owner/repo --version v1.2.3
brew ghcask unpin cask-name
brew ghcask reinstall cask-name --prerelease

Update managed casks

brew ghcask update
brew ghcask outdated --all
brew ghcask upgrade

Local state

Generated locally, managed by Homebrew

Local tap

Generated casks live in a local tap, while the distribution tap stays clean.

Homebrew cache

Downloads are moved into Homebrew's expected cask cache before install or reinstall.

Backup

brew ghcask dump exports generated casks and registry data to Brewghcask.json.

Restore

Restore local generated state, trust the tap, and let Brewfile install the casks.

Authentication

Prefer gh, fall back cleanly

1

Use authenticated gh when available.

2

Use curl with GH_TOKEN or GITHUB_TOKEN.

3

Use anonymous curl for public repositories when possible.