Package-manager channels
Doc type: How-to · Applies to: POSE 7.x (current stable)
Every channel below installs the exact same signed release artifact used by
the verified install contract — no channel ever
builds from source or repackages independently. Manifests are generated
deterministically from checksums.txt and the release tag by
pose release-package-manifests, run in CI only after the compatibility
gate, the security gate and artifact-identity verification have all passed
(spec pose-package-manager-distribution, R2).
Channels and support tiers
Linux and macOS have a one-line fast path through the release install.sh; the
reproducible path on every platform remains the verified download: fetch the
archive and checksums.txt, verify and extract — see
Quickstart. The package-manager channels below are
additive; Homebrew is not currently an end-user install channel.
| Channel | Format | Publication mechanism | Publication lag | Support tier |
|---|---|---|---|---|
| Homebrew | pose.rb formula |
Attached to the GitHub release as an asset. No install channel: Homebrew requires a formula to be in a tap, and installing one from a path or URL is rejected — so the published formula is consumable only by a tap that does not exist yet | n/a | Generated per release; native install verification deferred to a manual clean-host round through a throwaway tap; not consumable by an end user |
| WinGet | 3-file manifest set (version/installer/locale.en-US) |
Generated in CI and attached to the release; a maintainer submits it as a PR to microsoft/winget-pkgs |
Days, gated by upstream Microsoft review — tracked per release in the closing spec's follow-ups until publication is automated | Manifest generation maintained; native local-install verification deferred to a manual round; upstream publication is a manual, tracked step |
Install commands:
# Linux/macOS fast path
curl -fsSLO https://github.com/oseiaspereira88/pose/releases/latest/download/install.sh && bash install.sh
# Every platform verified path: see the install contract
# WinGet (Windows), once published to winget-pkgs
winget install Harne8.Pose
Homebrew is not an install channel
Earlier versions of this page offered
brew install --formula <url>. Homebrew rejects that: a formula must be in
a tap, and installing from a path or a URL is unsupported. The formula is
still generated and published every release, so a tap can
be stood up without regenerating anything — but until one exists there is
no brew command that installs POSE, and the verified download is the
supported path on macOS.
Verification
The Package channels CI workflow (.github/workflows/package-channels.yml)
installs, runs pose doctor --json and uninstalls through each channel on
native macos-latest and windows-latest GitHub-hosted runners when manually
dispatched with a published release tag. As requested on 2026-10-01, this round
is skipped/deferred until implementation is complete, tracked by spec
pose-package-channels-deferred-native-verification. It does not block
implementation, PR validation or release publication. No native run has been
performed for the current changes, and historical runs do not verify them.
On macOS the formula is installed
through a throwaway local tap, since that is the only supported way to install
a formula file — the artifact under test is the published pose.rb, not the
tap. A channel that fails this matrix blocks that release's support-tier claim,
not the release itself — package channels are additive to the verified
download-and-checksum contract, never a replacement for it.
That matrix ran for the first time on v0.21.0 and exposed two install-path
defects: Homebrew requires a tap, and WinGet requires local-manifest policy to
be enabled. The repaired clean-host run (31240578941) then passed artifact
validation, install and pose doctor --json on both macOS and Windows. This is
historical evidence only; it does not establish verification of subsequent
changes. This page still does not present
it as an end-user Homebrew channel: a throwaway CI tap is proof of the artifact,
not a maintained public tap.
Rollback
Every channel installs a specific pinned version. To roll back:
- Homebrew: not applicable — there is no install channel to roll back. Re-run the verified download against the prior tag.
- WinGet:
winget install Harne8.Pose --version <prior-version>, or uninstall and reinstall from the prior release's manifest artifact.
pose update handles the repository contract/schema side of moving
between versions once the new binary is on PATH; channel rollback only
changes which binary is installed.