Install
npm, Homebrew and the desktop installers
Preflight ships as a command line (and terminal interface) on npm and as a desktop app for macOS, Windows and Linux. Both come from the same tagged release and share one version.
Command line
Requires Node.js 22 or newer.
npm install -g @arhunsaday/preflight # installs the `preflight` executable
preflight --help
npx @arhunsaday/preflight doctor # or run it once without installingHomebrew
brew tap arhunsaday/tap
brew install preflight # the CLI
brew install --cask preflight # the desktop app (macOS)The tap is maintained by hand; if a formula lags behind a release, use npm.
Desktop app
Download the installer for your system from the latest release:
| System | File |
|---|---|
| macOS, Apple silicon | Preflight-<version>-mac-arm64.dmg |
| macOS, Intel | Preflight-<version>-mac-x64.dmg |
| Windows | Preflight-<version>-win-x64.exe |
| Linux | Preflight-<version>-linux-x86_64.AppImage or …-linux-amd64.deb |
Releases whose macOS app is signed and notarized say so in their notes. If a release says it is unsigned, macOS asks you to confirm the first launch (right-click the app, then Open). Windows installers are not code-signed yet, so SmartScreen can show a warning.
Verify a download
Every release carries a SHA256SUMS file.
shasum -a 256 -c SHA256SUMS --ignore-missing # macOS, Linux
Get-FileHash .\Preflight-<version>-win-x64.exe # Windows: compare with SHA256SUMSThe npm package is published from GitHub Actions with provenance, so npm shows which repository, workflow and commit built it. To check it:
npm audit signaturesUpdates
- Desktop app: it checks for a new version shortly after start and every few hours, downloads it in the background and shows a small notice in the top right with Restart to update. Use Check for Updates… (the app menu on macOS, the Help menu elsewhere) to check now. Updates apply on the next restart even if you dismiss the notice.
- Self-update works for signed macOS builds, Windows installers and the Linux
AppImage. Unsigned macOS builds and the
.debdo not update themselves: the menu item then points you to the releases page. - npm:
npm update -g @arhunsaday/preflight. - Homebrew:
brew upgrade preflight(andbrew upgrade --cask preflight).
From a clone
To work on Preflight itself:
git clone https://github.com/arhunsaday/preflight ~/Repos/preflight
cd ~/Repos/preflight
npm ci
npm run build
npm link # exposes the `preflight` executableThen, in a project:
preflight detect # read what the harnesses already hold (read-only)
preflight doctor # findings, drift, context cost (read-only)
preflight init # create preflight.config.json
preflight ui # open the terminal interfacedetect and doctor need no init. Use --root and --home to point at
another project or an isolated harness home, and PREFLIGHT_HOME to change the
default home.
The package contains the tool only. Skills, plugins, hooks and loadouts come
from a content source you add, such as
agent-kit: see
Sources. The shell installer that predates the CLI
(bootstrap.sh) moved there as install.sh.