Apple Intelligence Report on macOS 27: See What Leaves Your Mac

macOSTahoe ·
Apple Intelligence Report on macOS 27: See What Leaves Your Mac

Use the Apple Intelligence Report on macOS 27 to see which Siri AI and Writing Tools requests went to Private Cloud Compute, read the JSON, and protect it.

With macOS 27 Golden Gate, Apple Intelligence stopped being optional. The models download whether or not you use them, Siri AI is built into Spotlight, and more requests than ever are handed off from your Mac to Apple's servers for processing. Apple's answer to "what exactly is being sent?" is a feature most Mac users have never opened: the Apple Intelligence Report, tucked away at the bottom of Privacy & Security settings. It can show you, request by request, the text you sent to Private Cloud Compute and the response you got back. It also has quirks that make it easy to export an empty file, easy to misread, and easy to leak. This guide shows how to turn it on so it actually records something, how to read the JSON it produces with tools already on your Mac, what the report cannot tell you, and why the deepest layer of it — the cryptographic attestations — is really meant for security researchers rather than for you.

Key Takeaways

  • The report records Private Cloud Compute activity, and only after you turn it on. Choose "last 15 minutes" (the default) or "last 7 days" in System Settings > Privacy & Security > Apple Intelligence Report. Apple warns the report may be empty if there have been no Private Cloud Compute requests since you changed the duration.
  • It contains your actual words. According to Howard Oakley's analysis, each request entry includes the full prompt and the model's response — for example, text you ran through Writing Tools. Treat the exported file like a private diary.
  • It is a JSON file you can read with built-in tools. macOS includes jq; a handful of commands in this guide turn the report into a readable list of which app sent what, when, and whether it ran on the device or in the cloud.
  • It is not a complete log of AI on your Mac. Oakley found that on-device interactions appear to be recorded only in the unified log, and Siri conversations are recorded as transcripts in the new Siri app.
  • The attestation data is for researchers. The bulk of a report is Base64-encoded attestation bundles for the servers that handled each request. Apple's pccvre tool can parse them, but it requires changing a security setting in Recovery, and Oakley concluded the result is of "precious little use" to ordinary users.

Why This Report Matters More on macOS 27

Apple Intelligence splits work between two places. Simple tasks run on the device, using models stored on your Mac. Larger tasks go to Private Cloud Compute (PCC), Apple's server infrastructure built on Apple silicon. Apple's privacy page for the Mac states that "the data being processed in Private Cloud Compute is not stored or made accessible to Apple. It is processed only to fulfill your request, after which point the results are returned securely to your device and are not retained."

Three things changed with macOS 27 that make it worth checking that promise for yourself:

  1. You can no longer switch Apple Intelligence off entirely. As MacRumors reported, the toggle that disabled it has been removed in macOS 27 and iOS 27. The storage cost of that change is covered in our guide to the 30 GB macOS 27 takes after upgrading.
  2. Siri AI is a new, conversational client. It is built into Spotlight and has its own app. We covered how to use it in our Siri AI guide for macOS 27. More capable requests mean more of them go to PCC.
  3. Home joins the list. Apple's macOS 27 release notes say that when Apple Intelligence in the Home app is enabled, "your HomeKit Secure Video recordings are processed on-device and through Private Cloud Compute for video descriptions and search" (178858470). The same notes list a fix for Apple Intelligence Report entries for Home Intelligence, where "some data that was sent to Private Cloud Compute won't appear in the report" (176056930) — a sign that Apple treats the report as the place where this data should appear.

The report is the only built-in, per-request record of what went to PCC. If you care about privacy at all, it is worth knowing how to use it.

What Private Cloud Compute Promises, and What the Report Can Check

It is easier to read the report if you know which of Apple's claims it can actually help you verify. When Apple introduced Private Cloud Compute on its security research blog on 10 June 2024, it set out five core requirements:

RequirementWhat Apple committed toCan your report help verify it?
Stateless computation on personal user dataData is used only to fulfil the request, is not retained, and is not accessible to Apple staffNo — this happens on the server
Enforceable guaranteesProtections are enforced technically, not by policy aloneIndirectly, through attestations
No privileged runtime accessNo interfaces that let staff bypass the privacy guarantees, even during an incidentNo
Non-targetabilityAn attacker cannot single out a specific user's data without compromising the whole systemPartly — see the relay below
Verifiable transparencyResearchers can check that the software running matches what Apple publishedYes, via the attestation bundles and pccvre

Two mechanisms from that design explain much of what you will see in a report.

Your Mac chooses which servers it trusts. Apple writes that the device wraps each request's payload key "only to the public keys of those PCC nodes whose attested measurements match a software release in the public transparency log". In other words, your Mac checks each candidate server's attestation against a published, append-only list of software releases before it will let that server decrypt anything. The attestation bundles in privateCloudComputeRequests are the evidence of that check, and a single request can list several nodes, because the key is released to each node that qualifies. Many attestation entries for one request do not mean many copies of your data were processed; they mean several servers were eligible to handle it.

Your IP address is hidden from Apple. According to the same post, PCC requests pass through an OHTTP relay "operated by a third party — which hides the device's source IP address before the request ever reaches the PCC infrastructure". That is part of the non-targetability requirement. The report shows you the request and the nodes; it does not show the relay, which by design sits outside Apple.

What the report cannot do is prove the first and third promises. Whether a server truly discards your data after answering is a property of the software running on it. The attestation tells you that the software matches a published release; the published release is what independent researchers inspect, using the Virtual Research Environment Apple provides for Macs with Apple silicon. That division of labour — you check what was sent, researchers check what the servers run — is the honest way to think about the report.

Three Places AI Activity Is Recorded

Before turning anything on, it helps to know that the report is one of three records, and each covers different ground. Howard Oakley's walkthrough of 22 September lays them out:

RecordWhat it coversWhere to find it
Unified logOn-device interactions (which appear to be recorded only here)Console app or the log command; not intended for everyday reading
Siri appA detailed transcript of your Siri conversationsThe new Siri app in macOS 27
Apple Intelligence Report (AIR)Requests handled by Private Cloud Compute, with prompts, responses and attestation dataSystem Settings > Privacy & Security > Apple Intelligence Report

So if your question is "what did I say to Siri?", open the Siri app. If it is "what text left my Mac for Apple's servers?", the report is the answer. And if it is "what did the on-device models do?", the honest answer is that no friendly record exists.

How to Turn the Report On So It Records Something

The most common mistake is exporting the report and getting an empty file. That happens because the report only covers the period you choose, starting from when you choose it. Apple's own help page for macOS 27 says: "The report may be empty if there haven't been any Private Cloud Compute requests since you changed the duration."

Follow this order:

  1. Open System Settings and click Privacy & Security in the sidebar.
  2. Scroll to the bottom and click Apple Intelligence Report.
  3. Choose a report duration: Last 15 Minutes (the default) or Last 7 Days. Choosing Off turns the report off.
  4. Now use Apple Intelligence as you normally would — rewrite a paragraph with Writing Tools, ask Siri AI something complex, summarise a long email.
  5. Return to the same pane and click Export Activity.
  6. Choose where to save it and click Export. The file is named Apple_Intelligence_Report.json.

Which duration to pick depends on what you want to learn:

  • Last 15 Minutes is best for a focused test. Turn it on, perform one specific action, export immediately, and you get a small file that is easy to read and contains only what you just did.
  • Last 7 Days is best for an audit of your normal usage. Set it, work normally for a week, then export. Expect a much larger file, dominated by attestation data.

Apple's help page says to open the file with a text reader. That works, but the file is not designed for reading by eye, which is why the next section matters.

Handle the Exported File as Sensitive Data

Oakley's reading of a report is explicit: the report contains personal data such as "messages and text you enter in intelligent writing tools". Each request entry includes the full prompt and the model's response. If you rewrote a private email with Writing Tools, that email's text is in the file.

That changes how you should treat it:

  • Save it somewhere private. Your Desktop may be synced to iCloud Drive if Desktop & Documents sync is on. Consider a local folder that is not synced.
  • Do not attach it to a support request or upload it to an online JSON viewer. If you want to share the structure, remove prompts and responses first (the command is below).
  • Delete it when you are done. Move it to the Trash and empty the Trash. The report can be exported again at any time within its duration.
  • Remember the duration setting is persistent. If you set it to 7 days for an audit, decide afterwards whether to leave it or set it back.

The report setting controls what your Mac records for you to inspect. Turning it off does not stop requests from going to PCC; it only stops the Mac from keeping a list of them.

What Is Inside the JSON

The report has two top-level sections. Oakley's analysis and the documentation of an open-source viewer on GitHub agree on the broad structure:

modelRequests — one entry per request to a model. Each entry has fields including:

FieldWhat it holds
timestampWhen the request was made, as seconds since 1 January 1970 (with a fractional part)
identifierA unique ID for the request (a UUID)
promptThe full text sent to the model
responseThe model's reply
modelThe model identifier, such as one beginning com.apple.fm.language.instruct_server_v2
modelVersionThe model version
useCaseWhat the request was for
clientIdentifierThe component that made the request — for Writing Tools, Oakley's 2024 analysis saw com.apple.WritingTools.xpc.WritingToolsViewService
executionEnvironmentWhere it ran: PrivateCloudCompute for server requests; Oakley also noted OnDevice as a possible value

privateCloudComputeRequests — metadata for requests handled by PCC. Oakley describes this as "the bulk" of most reports. Its main content is attestation bundles, encoded in Base64. Each bundle describes a PCC server node your Mac was willing to release the request's encryption key to. The GitHub viewer's documentation also lists fields such as requestId, nodeState, node counts, attestationBundle, node, proxiedBy and assetHash, and it treats most of them as opaque technical values.

We have not been able to export a macOS 27 report ourselves — our test Mac is still on macOS Tahoe 26.5.2 — so the field lists above come from those two sources rather than our own file. Field names can change between releases. The first command in the next section shows you what your own report actually contains; trust that over any table, including this one.

Reading the Report with jq

macOS includes jq, a command-line JSON processor. On our Tahoe test Mac, /usr/bin/jq --version reports jq-1.7.1-apple. If you have also installed jq with Homebrew, either will work with the commands below.

Open Terminal, cd to the folder where you saved the report, and start with its shape.

1. See what the report contains

jq 'keys' Apple_Intelligence_Report.json
jq '.modelRequests[0] | keys' Apple_Intelligence_Report.json

The first command lists the top-level sections; you should see modelRequests and privateCloudComputeRequests. The second lists the fields of the first model request. If either command fails with an error about null, the section is empty — go back and check the duration setting.

2. Count the requests

jq '{modelRequests: (.modelRequests | length), pccRequests: (.privateCloudComputeRequests | length)}' Apple_Intelligence_Report.json

For a 15-minute test with a couple of Writing Tools actions, both numbers should be small. The open-source viewer's documentation shows an example report with 23 model requests and 18 PCC requests.

3. List every request as a timeline

jq -r '.modelRequests[] | [(.timestamp | floor | todate), .executionEnvironment, .clientIdentifier, .model] | @tsv' Apple_Intelligence_Report.json

This prints one line per request: the time (in UTC), where it ran, which component asked, and which model answered. It is the fastest way to see the overall pattern. If you prefer local time, replace todate with strflocaltime("%Y-%m-%d %H:%M").

4. How much ran on the device versus in the cloud

jq '[.modelRequests[].executionEnvironment] | group_by(.) | map({(.[0]): length}) | add' Apple_Intelligence_Report.json

The result is a small object such as {"PrivateCloudCompute": 12}. Given Oakley's finding that on-device interactions appear to be recorded only in the unified log, do not be surprised if everything in the report is PrivateCloudCompute.

5. Which apps and components sent requests

jq -r '[.modelRequests[].clientIdentifier] | group_by(.) | map("\(length)\t\(.[0])") | .[]' Apple_Intelligence_Report.json

Each line is a count and a client identifier. This answers questions like "is Mail sending my messages to PCC for summaries?" or "how often does Writing Tools use the server?".

6. Read the text that was sent

jq -r '.modelRequests[] | select(.executionEnvironment == "PrivateCloudCompute") | "\(.timestamp | floor | strflocaltime("%Y-%m-%d %H:%M"))  \(.clientIdentifier)\n  PROMPT: \((.prompt // "")[0:300])\n"' Apple_Intelligence_Report.json

This prints the first 300 characters of each prompt sent to PCC, with its time and source. It is the most revealing view of the report — and the reason the file needs care.

7. Make a shareable copy without your text

jq 'del(.modelRequests[].prompt, .modelRequests[].response)' Apple_Intelligence_Report.json > AIR-redacted.json

If you want to share the structure of a report with a developer or a forum, share this version. It keeps timestamps, models and environments but removes the prompts and responses. Check it before sharing; if a future version of the report puts text in other fields, this command will not remove them.

Reading one entry, field by field

Once you have the timeline, pick one entry and read it in full. It helps to know what each part is telling you:

  • The model name tells you the size of the job. Identifiers containing server — Oakley's examples include com.apple.fm.language.instruct_server_v2 and, in 2024, com.apple.fm.language.instruct_server_v1.text_summarizer — refer to server-side models. If a request you expected to run locally shows a server model, that feature used PCC for that request.
  • The clientIdentifier tells you who asked. It names the system component, not always the app you were using. Writing Tools requests come from its own service, com.apple.WritingTools.xpc.WritingToolsViewService, whether you invoked it in Mail, Notes or a third-party editor. So if you want to know which app you were in, use the timestamp and your own memory rather than this field.
  • The useCase tells you what kind of request it was. Values differ between features; compare several entries from the same feature to learn what yours look like.
  • The prompt tells you the scope. This is where surprises tend to appear. A summary request may include more of an email thread than was visible on screen, and a rewrite includes the whole selection, not just the sentence you were thinking of. Reading a few prompts is the best way to calibrate what each feature sends.
  • The response is what came back. It should match what you saw on screen. If a response is present but you never saw the result — for example because you cancelled — the request still reached the server.

The same report on iPhone and iPad

Apple offers the same report on iPhone and iPad, in Settings > Privacy & Security > Apple Intelligence Report, and Apple's help pages for those devices describe it the same way. The records are per device: a report exported on your Mac shows only requests made from that Mac. If you want to audit your Apple Intelligence use as a whole, export a report on each device over the same period.

We tested every command in this section against a small sample file built from the documented field names, using the jq that ships with macOS. On a real report, expect the attestation sections to make the file large and slow to open in a text editor; the jq commands handle that without trouble.

A laptop, a tablet and a smartphone side by side on a table at night, each screen glowing with the same soft violet light

Four Common Misreadings

People who open their first report tend to draw the same wrong conclusions. Avoid these:

  1. "The two sections should have the same number of entries." They need not. modelRequests lists requests to models; privateCloudComputeRequests holds PCC metadata, largely attestations. The example report in the GitHub viewer's documentation had 23 of the former and 18 of the latter. Match entries by time rather than expecting a one-to-one list.
  2. "Lots of attestations means my data went to lots of servers." As explained above, your Mac releases a request's key to every node whose attestation matches a published release. Several attestations show several eligible nodes, not several copies of your request being processed.
  3. "The model name tells me which product I used." Model identifiers describe Apple's internal models and adapters, and the same model can serve several features. Use clientIdentifier and the timestamp to work out what you were doing.
  4. "Nothing in the report means nothing left my Mac." An empty report after you changed the duration means no PCC requests since then. It says nothing about the period before, and it does not cover third-party services such as ChatGPT.

What the Report Does Not Tell You

The report is valuable precisely because it is specific, but its limits are just as specific:

  • On-device activity is largely missing. By Oakley's reading, on-device interactions appear only in the unified log. The report is not a complete record of what Apple Intelligence did on your Mac.
  • Siri conversations are recorded elsewhere. The Siri app keeps a transcript of your conversations; that, not the report, is the place to review what you said to Siri.
  • It shows what was sent, not what happened on the server. The report proves that your Mac sent a request to servers whose attestations it accepted. It cannot show what those servers did with the data; that is what Apple's published security design and independent research are for.
  • Coverage depends on the feature being wired up correctly. The macOS 27 release notes' fix for Home Intelligence entries missing from the report (176056930) shows that features can, at least in pre-release builds, fail to appear.
  • Third-party AI is outside it. The report covers Apple Intelligence and Private Cloud Compute. When you choose to send something to ChatGPT through the integration, that request is governed by OpenAI's terms. We looked at the privacy side of ChatGPT on the Mac in our article on the ChatGPT Messages plugin and Full Disk Access.

The Deep End: Attestations and pccvre

The attestation bundles are the part of the report that makes Private Cloud Compute more than a promise. Apple's design, described on its security research blog, is that your device only sends a request to PCC nodes that can prove, cryptographically, that they are running software Apple has published for inspection. The attestation bundles in your report are those proofs.

Apple provides a tool to parse them. Oakley's follow-up of 24 September quotes Apple: "you can parse, canonicalize, and verify attestation bundles from the Apple Intelligence Report using the pccvre attestation subcommands." The tool lives at:

ls -l /System/Library/SecurityResearch/usr/bin/pccvre

It is already present on our Tahoe 26.5.2 Mac. Running it, however, does not get you far on a normal Mac. On ours, both pccvre --help and pccvre attestation --help stopped immediately with:

allow-research-guests is currently disabled; Please go to recovery and run 'csrutil allow-research-guests enable'

That is the gate. To use pccvre, you have to start up in Recovery and change a System Integrity Protection option:

csrutil allow-research-guests enable

You can check its state from a normal session with:

csrutil allow-research-guests status

On our Mac that reports Allow Research Guests status: disabled, alongside System Integrity Protection status: enabled from csrutil status. Oakley notes that Apple warns enabling research access "might expose additional attack surface". He did his work in a macOS 27 virtual machine with its security settings changed, not on his main Mac, then agreed to the licence prompts by running sudo pccvre --help, and parsed a bundle with a command of this form:

pccvre attestation parse [--debug] [--input-format <input-format>] \
  [--request-index <request-index>] [--attestation-index <attestation-index>] \
  [--bundle-version <bundle-version>] [--output-format <output-format>] \
  [--output <output>] <file>

His conclusion is worth quoting in full context: the JSON output for a single attestation bundle came to 53 KB, containing a few recognisable words about the security of the transaction but "overwhelmingly more Base64 encoded data, not intended for human consumption but for security researchers". As they come, he writes, AIRs "are of precious little use to us".

Our recommendation follows from that. Do not enable research guests on your everyday Mac to read your own report. The prompt and response text — the part you can actually interpret — is readable with jq without changing any security setting. Leave attestation verification to researchers working in virtual machines, which is exactly what Apple's Virtual Research Environment is designed for.

A Practical Privacy Audit in Twenty Minutes

If you want to know what your normal Apple Intelligence use sends to Apple, here is a focused routine:

  1. Set the report to Last 15 Minutes. This gives you a clean window.
  2. Do one thing at a time. Rewrite a paragraph with Writing Tools. Ask Siri AI a question that needs your personal context. Summarise a long email thread in Mail. Try a Home Intelligence search if you use it.
  3. Export after each action and run command 3 from the jq section. You will see, action by action, whether each one reached PCC and which component sent it.
  4. Read the prompts with command 6. Check whether more text went to the server than you expected — for example, a whole email thread for a summary, rather than just the visible message.
  5. Decide what to change. If a feature sends more than you are comfortable with, stop using that feature for sensitive material. You cannot switch Apple Intelligence off wholesale on macOS 27, but you can choose not to invoke Writing Tools on a confidential document.
  6. Delete the exported files and set the duration to whatever you want to keep.

This is also a good way to settle arguments at work about whether a particular feature is "on-device" or not. The report shows what it shows; nobody has to guess.

For Administrators

Organisations that manage Macs have a slightly different question: not "what did I send?" but "what could our users send?". The report is a per-user, per-Mac tool, so it is not a fleet audit mechanism, but it is a useful validation step when you write policy:

  • Use it to test policy decisions. Before you allow or restrict a feature with your MDM, run the twenty-minute audit above on a test Mac with representative data and see which components reach PCC.
  • Remember the storage cost is now fixed. Because Apple Intelligence can no longer be disabled entirely on macOS 27, every Mac downloads the models. Plan for it as described in our macOS 27 storage guide.
  • Treat exported reports as user data. If you ask a user to export a report for an investigation, it contains their text. Handle it under the same rules as email content.

For the broader set of macOS 27 changes that affect managed fleets, see our macOS 27 admin checklist.

An IT administrator in an office checking a laptop beside a charging cart full of managed laptops

Troubleshooting Common Issues

The exported report is empty

Problem: Apple_Intelligence_Report.json contains no requests, or jq reports null sections.

Solution: The report only covers PCC requests made since you last changed the duration. Set the duration, then use a feature that actually reaches PCC (a Writing Tools rewrite of a substantial paragraph is a reliable test), and export again. If you only used on-device features, an empty report is the expected result.

I cannot find Apple Intelligence Report in Privacy & Security

Problem: The item is missing from the list.

Solution: It sits at the bottom of the Privacy & Security pane, below the permissions list; scroll down. It only appears on Macs that support Apple Intelligence. If Apple Intelligence itself is not available on your Mac, see Apple Intelligence not available or greyed out.

jq says "Cannot iterate over null"

Problem: A command fails partway through.

Solution: The section the command expects does not exist in your report, or a field is missing in some entries. Run jq 'keys' and jq '.modelRequests[0] | keys' to see the real structure, then adjust the field names. Adding // empty after a field — for example .prompt // empty — skips missing values instead of failing.

The timestamps look wrong

Problem: Times are several hours off.

Solution: todate prints UTC. Use strflocaltime("%Y-%m-%d %H:%M") instead for your local time zone. The raw values are seconds since 1 January 1970, with a fractional part, so they must be rounded with floor first.

The file is too large to open

Problem: A seven-day report is many megabytes and freezes a text editor.

Solution: That is the attestation data. Do not open it in an editor; use the jq commands, which read only the parts you ask for. Command 7 produces a much smaller copy without prompts and responses.

pccvre says research guests are disabled

Problem: Any pccvre command stops with the "allow-research-guests is currently disabled" message.

Solution: That is by design. Enabling it requires Recovery and weakens a security boundary. If you are a security researcher, do it in a virtual machine as Oakley did. Otherwise, skip the attestation layer; you do not need it to read your prompts and responses.

FAQ

What is the Apple Intelligence Report on Mac?

It is a record of Apple Intelligence requests handled by Private Cloud Compute, available in System Settings > Privacy & Security. You choose a duration of 15 minutes or 7 days, then export it as Apple_Intelligence_Report.json.

Why is my Apple Intelligence Report empty?

It only includes Private Cloud Compute requests made since you changed the duration. Set the duration first, use a feature that reaches the cloud, such as Writing Tools on a longer paragraph, then export.

Does the report include my actual text?

Yes. Each request entry includes the prompt sent to the model and the response. Keep the exported file private, do not upload it to online viewers, and delete it when finished. Use the jq redaction command to share its structure safely.

Does turning off the report stop data going to Apple's servers?

No. The setting only controls whether your Mac keeps a record of Private Cloud Compute requests for you to inspect. Requests still go to Private Cloud Compute when a feature needs it.

Can I see what the on-device models did?

Not in a friendly way. According to Howard Oakley's analysis, on-device interactions appear to be recorded only in the unified log. Siri conversations are kept as transcripts in the Siri app.

What are the attestation bundles in the report?

They are cryptographic evidence describing the Private Cloud Compute servers your Mac agreed to send each request to. Apple's pccvre tool can parse them, but it requires enabling research guests in Recovery, and the output is intended for security researchers.

Is it safe to use a third-party viewer for the report?

Only one that runs entirely locally and whose code you can check. The open-source viewer on GitHub says it makes no network requests. Even so, the safest approach is jq on your own Mac, which needs no extra software.

Conclusion

The Apple Intelligence Report is the closest thing macOS 27 offers to a receipt for your AI use. It will not tell you everything — on-device activity and Siri conversations live elsewhere, and the attestation layer is written for researchers — but it does show, in plain text, what left your Mac for Private Cloud Compute and what came back. Turn it on before you test, export it promptly, read it with jq rather than a text editor, and treat the file as private data. Now that Apple Intelligence can no longer be switched off, knowing how to check it is the next best thing.

Related reading: How to use Siri AI on Mac · Siri AI waitlist on macOS 27 · macOS 27 took 30 GB of disk space