Repository navigation
The HTML Report
The report is a single self-contained HTML file — no external assets, no server, no internet required to open it. The logo is embedded, the CSS and JS are inline. You can email it, drop it in a ticket, or archive it, and it will still work years later.



| Feature | Detail |
|---|---|
| Sticky sidebar | Jump to any group; collapsible, and the collapsed state is remembered |
| Live filter | Searches section names, item names, and table content — type a package name and only matching rows survive |
| Expand / Collapse All | Every group opens or closes at once |
| Inventory panel | At-a-glance counts in the sidebar (managed vs unmanaged Macs and devices; enrolled/MDM-enrolled counts on Intune) |
| Light / dark toggle | Per-reader preference, saved in localStorage
|
| Print stylesheet |
Print in the sidebar produces a clean paginated document |
| Header block | Generation timestamp, the time zone the report's dates are shown in (the Mac's own, e.g. Europe/London (BST)), and the source instance, so a report is always self-identifying |
| Incomplete-data banner | Shown directly under the header when any listing couldn't be read in full, naming each one. See Report Sections |
| Content Security Policy | The report can't load scripts, styles or fonts from anywhere else, and logos are only accepted as embedded image data |
Colour theme, title and footer come from Preferences. You can override the title and footer for a single run in the Customise Report panel on the sections step.
The report has two separate logos:
| Logo | Where it's set | Where it appears |
|---|---|---|
| Sidebar logo | Report Logo in Preferences (MDM Magic mark by default) | The sidebar, on every report |
| Customer logo | Customer Logo in Customise Report, per run | Centred in the top banner. With none chosen, the banner shows just the title |
Square logos are shown in a circle. Wide logos and wordmarks (more than 1.6 times as wide as they are tall) are shown uncropped in a rounded rectangle instead.
Logos can be PNG, JPEG, GIF or TIFF files up to 20 MB. They're scaled down to at most 512 pixels on the longest side and stored as PNG, so a large photo doesn't bloat every report. If a file can't be used, the app tells you why.
For Jamf runs, the Security Audit and Application Version Check results are added as extra sections at the end of the report when those options are on.
Chosen on the Options step. PDF and DOCX need a licence once the free trial has ended.
| Format | File | Notes |
|---|---|---|
| HTML Only | .html |
The default |
| HTML + PDF |
.html + .pdf
|
Paginated A4-proportioned export of the report, in the report's on-screen colours, with selectable, searchable text. Page breaks fall between table rows and paragraphs, so lines aren't cut in half (PDFExporter) |
| HTML + DOCX |
.html + .docx
|
The report parsed into Office Open XML, written natively in Swift — no subprocess, no Word required (DocxExporter) |
Coming soon. The option is shown on the Report Extras step but is greyed out and can't be turned on yet.
An optional extra (Jamf), on the Report Extras step. GuidanceDocxGenerator produces a separate .docx structured as an audit report — cover page, table of contents, document overview, then one numbered chapter per subsection with Findings / Impact / Details / Recommendations.
It's the write-up that goes with the data: the HTML report is what the environment is, the guidance document is what to do about it.

If you added a Teams or Slack webhook on the Options step, the app posts a summary on completion for Jamf Pro, Intune and Iru runs: the report title, instance, platform version, and counts of sections and API calls. Jamf Pro summaries also include policies, profiles and unused items. The report itself isn't sent. Useful for a change-management channel, and the same webhooks are available per-agent in Automated Reports.
| Webhook | Format |
|---|---|
Microsoft Teams Workflows (Power Automate, …logic.azure.com or …powerplatform.com) |
Adaptive Card |
| Microsoft Teams legacy Office 365 connector | MessageCard |
| Slack incoming webhook | Block Kit message |
Webhook URLs must start with https://.
If the report is incomplete, the summary has a Data completeness line saying how many warnings there were. Unused-item counts are only sent when the data behind them was read completely. A failed notification is shown on the completion screen as Teams notification (failed) or Slack notification (failed), and doesn't stop the report being saved.
MDM Reporting Tool — internal edition · mdmmagic.au · Log issues & feature requests
Setup
Reporting
Automation
App
Security