Repository navigation
01 Installation
This page covers installing the macOS app and jamf-cli.
| Component | Requirement |
|---|---|
| macOS | macOS Sequoia 15 or later — to run the app |
| jamf-cli | v1.18.0 or later — optional; powers live collection (v1.19.0+ recommended for partial-failure handling; the project tracks v1.31.1) |
| Xcode | 16 or later — only needed to build the app from source |
| Architecture | Apple silicon (arm64) — the prebuilt .pkg/.dmg are arm64-only; Intel Macs build from source |
jamf-cli is optional. The app works from a Jamf Pro CSV export
and cached snapshots with no jamf-cli installed — jamf-cli adds live collection and the
API-driven dashboards.
The macOS app is the recommended way to use this project.
Download a build. Get the latest JamfReports.app from the
Releases page. Release
builds are ad-hoc signed for local use.
Or build from source. The app is a SwiftPM project (no .xcodeproj):
cd app
./build-app.sh release # → app/build/JamfReports.appFull build instructions — including Developer ID signing
for wider distribution — are in
app/README.md.
jamf-cli is Jamf's official command-line interface for Jamf Pro. Install it with
Homebrew:
brew install Jamf-Concepts/tap/jamf-cliPre-built binaries are also available from the jamf-cli releases.
Authenticate against your Jamf Pro instance:
jamf-cli pro setup --url https://your-instance.jamfcloud.comFollow the prompts. jamf-cli pro setup can create an API client for you — choose the
read-only scope when offered, since this project only reads data. Credentials are
stored in the macOS keychain, not in shell history.
On jamf-cli 1.29.0 and later, pro setup first asks whether to use an API client you
already hold (the default) or to create one from a Jamf Pro account. Prefer an existing
client: Jamf plans to remove local, SAML and LDAP administrator sign-in on cloud-hosted
instances (estimated for the second half of 2027), and the create path depends on it.
If you use the Jamf Platform API, jamf-cli also offers jamf-cli platform setup, which
creates a Platform Gateway profile that enables both the Pro and Platform API command
sets. When you run multiple Jamf Pro instances, give each its own profile and select it
with jamf-cli -p <profile>.
If you create the API role yourself rather than letting jamf-cli pro setup do it, the
client needs read access only. Permissions & Access
lists the privileges each report area needs, both for a direct Jamf Pro connection and for a
Jamf Platform API integration. Grant the areas you report on. Jamf's
Privileges and Deprecations
reference is the authoritative privilege catalog. Do not use a full-administrator API client
for scheduled reporting.
Nothing in JamfReports writes to Jamf, so no role needs a create, update or delete privilege. When a privilege is missing, that source fails and the rest of the collect still lands. Run History and the health strip name the missing privilege from jamf-cli's error. The hourly automatic retry skips that source, since retrying cannot help; scheduled runs and Collect now still try it, so it fills in once the role has the privilege.
Confirm a profile resolves and authenticates:
jamf-cli config validate -p <profile>A clean exit means the app and CLI can collect live data. If jamf-cli is missing or
unauthenticated, both still run from CSV exports and cached snapshots — the live
dashboards are simply skipped.
- Continue to App Onboarding.