Apple's Full Disk Access Warning: Design an AI Assistant People Can Safely Refuse
A founder's guide to narrower file access, honest permission onboarding, useful refusal paths, and verifiable revocation after Apple's October 2 announcement.
On October 2, Apple announced that it will add controls around macOS Full Disk Access, requiring more explicit user action before applications receive that unusually broad permission. Apple directly connected the change to increasingly autonomous AI agents and warned that access can expose files, mail, messages, browsing history, and other people's communications. The announcement is a direction of travel, not a published implementation schedule: it does not identify the final interface, rollout date, or supported operating-system versions. See Apple's original notice.
For founders building desktop AI assistants, the immediate decision is whether the first useful task really requires such a large permission. A product that asks to see everything before demonstrating value makes users decide about risks they cannot yet evaluate. More explanatory copy cannot repair an unnecessarily broad request.
This guide is for nontechnical founders, AI app builders adding a desktop companion, and small teams reviewing a contractor's implementation. You will leave with a task-to-file decision table, a worked onboarding scenario, a permission brief, and acceptance tests for refusal and revocation. Our judgment is that the first useful task should use the smallest enforceable file boundary, and saying no should produce an honest, usable product state. This is a proposed product protocol, not a test of Apple's forthcoming controls or evidence that any named assistant violates them.
1. Separate the announced change from decisions you can make today
Apple's notice describes Full Disk Access as an exceptional mechanism associated with backup workflows and promises additional controls. It does not announce a ban on desktop agents. It also does not establish that every application with broad access reads every accessible file. Capability, actual behavior, and a person's understanding are different things. Keep those distinctions in your customer communication and competitor analysis.
The practical uncertainty matters. A founder should not redesign onboarding around an imagined new button, tell customers an update has already fixed the risk, or attach an unsupported macOS version to a compatibility promise. Assign someone to monitor implementation details, while improving the existing product now. These improvements remain useful regardless of the eventual system interface.
Start by inventorying the first three jobs your product sells. For each, ask what the assistant must read, what it must change, and whether it needs to return later without the user selecting the material again. “Help with my work” is too vague. “Summarize the three PDFs I choose” is concrete enough to compare against an access mechanism.
A web application that receives uploads has a different entry point from a native desktop helper. It cannot borrow the desktop operating system's permission vocabulary to describe its cloud retention policy. If your AI builder generates only a browser app, use this article to evaluate a proposed native companion or integration, rather than adding a fictitious Full Disk Access setting to the website.
2. Learn the permission terms before reviewing the prototype
Full Disk Access is a broad system permission, not a synonym for selecting a document. App Sandbox constrains a macOS application's capabilities; Apple's security overview explains why limiting capability also limits harm from compromised software. A marketing label such as “sandboxed AI” does not tell you which component is constrained or what exceptions it has. An entitlement is an application's declared capability. User-selected file access is access associated with the person's file selection through supported system interactions. Apple's macOS file-access documentation distinguishes read-only and read/write access, explains recursive access within a selected folder, and describes persistent bookmarks. The same document notes that other protections can still block a file and that code cannot automatically grant Full Disk Access. A security-scoped bookmark can preserve access to a selected resource across application launches. It is not a fresh user decision each time the app starts. Apple's NSURL documentation describes that persistence and the need to start and stop security-scoped resource access appropriately. For a founder, the important question is whether “select once” means “use once” or “keep monitoring.” Your interface must resolve that ambiguity. Revocation stops a permission or product connection. Deletion removes retained data according to a defined lifecycle. They can happen together, but they are separate operations. An application may already possess extracted text or a summary after it loses access to the original. No permission terminology, by itself, proves those copies have disappeared. Ask your team to demonstrate the behavior, rather than choosing the most reassuring word.3. Choose a boundary around a job, not around the entire computer
Use this table before discussing onboarding conversion. It expresses proposed product choices; it is not a claim that every app framework supports each boundary automatically.
| Customer job | Starting boundary to evaluate | What the user should understand | When the team must stop and reconsider |
|---|---|---|---|
| Summarize selected documents | Explicit file selection, read-only where supported | Which documents are included and where processing occurs | The helper scans unrelated locations |
| Answer questions about one project | A selected project folder with disclosed recursive scope | Nested files and future additions may be included | “One project” secretly includes linked external material |
| Rewrite a document | Read the chosen input; export a new draft | The original remains separate from the proposed output | A read request silently enables overwriting |
| Monitor a folder for new material | Explicit persistent access plus a visible pause control | Monitoring continues after the current session | Background reads occur before monitoring is chosen |
| Search protected material across the Mac | Broad access only after proving narrower options inadequate | The true system capability and the application's narrower policy | The broad capability is described as a single-folder permission |
The distinction between desired scope and enforceable scope is crucial. A team may say “we only search Projects” while the native helper holds a broader permission. That can be a real application policy, but it is not an operating-system restriction. Document the difference and make the product decision consciously. Do not let a narrow label conceal a wide technical capability.
Folder selection also deserves care. The Apple file-access guide explains that access can extend into nested folders. A project may contain exported messages, credentials, client contracts, or shared files added by someone else. Let people inspect the chosen scope and exclude unnecessary categories before indexing. Have engineering test symbolic links, aliases, relocated files, helper processes, and cloud placeholders on supported versions; this article does not assume a uniform result for those cases.
Least privilege has an AI-specific consequence: read access and action authority should be reviewed separately. OWASP's excessive-agency guidance identifies unnecessary tools, permissions, and autonomy as distinct causes of harm. A research assistant need not gain deletion tools because its connector happens to include them. A document's instructions must not expand the assistant's resource boundary.
4. Demonstrate value before asking for persistent access
Design the first useful result around a bounded action the customer initiated. A sample workspace can demonstrate navigation without touching personal material. Then file selection can demonstrate an answer grounded in documents the person recognizes. Persistent folder access becomes relevant only if the customer chooses a recurring job. Each step should reveal its own cost and benefit.
Apple's privacy design guidance recommends requesting access when it is needed and explaining the specific use. That supports contextual requests; it does not prove that contextual onboarding increases conversion for your product. Treat conversion as an experiment, with comprehension and refusal behavior included in the evaluation.
Avoid a welcome sequence that lists six permissions with identical “improve your experience” explanations. Instead, put the request next to the job: “Choose documents to summarize” or “Set up ongoing project search.” A customer should be able to predict the next event. If the next event opens a system chooser or Settings, say so. Do not mimic a system approval screen or present an application button as though it grants an operating-system permission.
There is an important interface boundary here. Offer sample, upload, or restricted modes in your ordinary feature-selection screen. Apple's guidance for a custom view immediately preceding a system permission alert has its own prescribed structure, including a single continuation action. Do not transplant a multi-option product chooser into that pre-alert view and call it Apple's recommended pattern. Have the designer check the exact platform flow the implementation uses.
A persistent job should also explain what happens after the window closes. Does the helper continue scanning? Does it stop when the app quits, or run at login? Does it upload extracted content? The answer should be visible before the user commits. If the team cannot describe the lifecycle accurately in two sentences, the background feature is not ready for onboarding.
5. Write a permission brief that exposes the real tradeoff
The reusable artifact below is a product review brief, not an Apple API schema. Fill it in with engineering and operations before writing the short customer message. An empty answer is a design decision still outstanding.
| Field | Required answer | Evidence to attach |
|---|---|---|
| User goal | The specific task being enabled | Prototype of the task entry point |
| Native capability | What the app and its helpers can technically access | Build configuration and supported-version test |
| Product scope | Which files the product will actually use | Enforced policy and excluded-path cases |
| Read/write behavior | Read, create a separate output, modify, or delete | Demonstration of each enabled operation |
| Duration | One task, session, persistent monitoring, or another stated period | Relaunch and background behavior |
| Processing destination | Device, named cloud service, or a documented mixture | Request trace using synthetic material |
| Retained derivatives | Text, summaries, embeddings, logs, exports, and backups | Storage inventory with lifecycle owners |
| Refusal behavior | What remains usable when permission is denied | Completed refusal-path recording |
| Disconnect behavior | What stops and what remains | In-flight and queued-work tests |
| Deletion behavior | What is removed, when, and what exceptions remain | Deletion receipt and restore-path check |
Now write customer copy from that brief. For a hypothetical folder-search app, a possible message is: “Choose a project folder for search. We include its subfolders and keep an index until you remove the project. Answers use our cloud service.” That is clearer than “Unlock your AI assistant.” It is also unacceptable if the actual implementation keeps monitoring forever or uses a different provider. Copy is a description of behavior, not a substitute for it.
If the app requires broader system access than the product scope, disclose both levels. Explain why the narrower mechanism does not complete the job and what the application does to restrict its own use. Where no convincing explanation exists, choose a smaller feature. The commercial cost of a reduced promise may be preferable to making customers accept a capability your team cannot defend.
For outputs containing someone else's communications, consider more than the device owner's click. Apple explicitly raises the privacy of communication partners in its notice. A founder should decide which material is inappropriate for ingestion, how sharing works, and whether team administrators can expose another person's content. This article does not establish a lawful basis for processing that material; it identifies a product question that personal device permission cannot settle.
6. Walk through a realistic refusal and recovery scenario
Consider CedarFiles, a hypothetical assistant for a two-person design consultancy. Its initial promise is to answer questions about a selected client project. Maya chooses a folder containing a proposal, meeting notes, and draft deliverables. CedarFiles uses a desktop helper to extract text and a cloud model to draft answers. This is an illustrative design, not a report of a deployed customer or an experiment.
In the useful first version, Maya starts with three chosen files. The answer cites those inputs and shows which documents were used. The app offers ongoing folder search as a separate feature. Before enabling it, Maya learns that nested documents will be included and that extracted text is sent to the named processing service. She can continue with individual files instead.
Now introduce failure. The chosen folder includes an inaccessible client archive. The app must show the limitation and keep the readable subset identifiable. It must not silently ask for Full Disk Access as a generic repair, then present an answer as though it searched everything. If the job requires the missing archive, the answer should say the evidence is incomplete and invite a deliberate narrower selection.
Next, Maya rejects persistent access. CedarFiles preserves her completed draft, disables ongoing indexing, and offers one-time selection next time. It does not repeatedly open Settings, mark the entire account broken, or restart the rejected flow after relaunch. The restricted mode has a real limitation: it cannot promise automatic coverage of newly added documents. That limitation belongs in the interface and the pricing description.
Finally, Maya disconnects the project while a scan is running. The team must decide how to handle work already in flight, prevent queued jobs from renewing access, and identify retained copies. An export she downloaded is different from a server-side index. “Project disconnected; previously generated answers remain until you delete them” may be an honest state. “Everything removed” is appropriate only after the relevant deletion process has completed and the product can substantiate its scope.
7. Design revocation as a sequence users can observe
Apple's Files & Folders support instructions let people change application access in System Settings. Its platform security guide describes protected file access and user controls. Those system mechanisms should be part of your support documentation. They do not describe deletion of an AI application's previously generated derivatives.
A useful product sequence has separate visible states: stop new collection, disconnect the source, remove active derivatives if requested, and disclose retained exceptions. Show progress accurately. If deletion is queued, say “deletion requested,” not “deleted.” If a provider has an independently governed retention period, identify the limitation rather than promising instant disappearance across every system.
Work already underway needs an explicit policy. A request may have left the device before permission changes. Decide whether to suppress the returned answer, discard its content, or retain it under a separately approved history setting. Test the policy with synthetic data and an intentionally delayed response. The essential acceptance condition is that the system does not represent an interrupted task as fresh authorized access.
Backups create another edge case. Removing an item from the live index is insufficient if restoring an older backup makes it searchable again. Record deletion or exclusion information in a way your recovery procedure respects. A small team need not build elaborate machinery immediately, but it does need a documented recovery path and a test that matches its promise.
There is also a timing tradeoff. Very short retention simplifies some deletion questions but can reduce useful history or make support investigations harder. Longer retention may improve continuity while increasing exposure and operational responsibility. Let the customer choose meaningful history settings where feasible; never describe persistence as inevitable simply because the first implementation uses a convenient database.
8. Test behavior that a successful demo will not reveal
Run the following acceptance session on a clean test account with synthetic files. These are proposed tests, not claimed results. Record the app build, helper version, macOS version, selected paths, processing configuration, observed outcome, and owner of each fix. Reuse the cases after changes to the native helper or indexing system.
| Test | Expected product behavior | Evidence to capture |
|---|---|---|
| Deny the first request | A clear explanation and an available bounded alternative | Screen recording and absence of unintended reads |
| Select one file beside a private control file | Only the chosen input enters the job | Synthetic marker checks in requests and index |
| Choose a folder with nested sensitive fixtures | Scope is disclosed; configured exclusions hold | Enumeration and exclusion results |
| Encounter an unreadable file | Missing coverage is visible; no automatic privilege escalation | Answer and access-error record |
| Restart after one-time use | No unpromised background monitoring | Helper activity after relaunch |
| Disconnect during a delayed scan | New reads and queued work stop under the documented policy | Timeline of source access and request completion |
| Delete a project then restore a backup | Deleted material does not reappear in active search | Restore and query record |
| Open a document containing instructions to read elsewhere | Content cannot enlarge the approved scope | Blocked request or tool trace |
| Disable system access outside the app | The product detects failure and reports its actual state | Relaunch and source-status behavior |
A synthetic marker is simply a distinctive string placed in a control file so the tester can detect unexpected inclusion. It does not prove the absence of every leak, and its absence from the final answer alone proves very little. Inspect intermediate requests, retained index records, and relevant metadata without exposing real customer content. Have engineering explain what the test can observe and what remains outside it.
Do not convert a handful of passed cases into a universal safety score. These checks establish evidence for particular supported paths. Privileged helpers, extensions, enterprise deployment settings, and operating-system changes may create different behavior. Maintain a supported configuration list and stop claiming coverage where your team has not tested it.
9. Measure informed use, not permission acceptance alone
Permission acceptance is a poor sole success metric because an ambiguous request can increase approvals while lowering informed choice. Apple's design principles emphasize clear rationale, transparent data use, feedback, and recovery. The founder's experiment should ask whether people understand the tradeoff, not just whether they click through.
In a small moderated study, ask users to explain which locations the app can access, whether processing leaves the device, what persists, and what disconnecting does. Ask after an actual task, without feeding them the correct terminology. Record misunderstandings by feature and copy version. This is a suggested research method; we have not run it or established a conversion lift.
Track completed useful tasks within each permission mode, refusal-path abandonment, repeated requests, source-coverage errors, disconnect completion, and deletion failures. Avoid collecting document names or content merely to populate a trust dashboard. Aggregate operational events where possible and make diagnostic content capture a separate, deliberate support choice.
A narrower mode may have lower automatic coverage but higher comprehension. A broader mode may complete more tasks while increasing support and governance costs. Compare those outcomes explicitly before expanding the request. If users consistently misunderstand persistent monitoring as a one-time read, revise the feature and the interface; do not dismiss the pattern as a customer education problem.
10. Decide what to ship while Apple's details are still pending
For selected-document summarization and project-specific assistance, ship the narrowest tested mode that completes a valuable task. Keep persistent monitoring optional and visible. If a contractor says broad access is mandatory, request a concrete demonstration of the task that fails under narrower access and the documented alternatives considered. Architecture convenience alone is a weak reason to increase the user's exposure.
For genuinely system-wide jobs, broader access may be integral. Backup and comprehensive local-search products cannot always make the same promises as a three-document summarizer. The decision then requires a stronger explanation, credible application restrictions, observable pause and revocation behavior, and tested retention handling. Refusal may disable the core job; say that plainly and offer a demo or another useful mode only when one actually exists.
In the next working day, complete the permission brief for one high-value task, redesign its ordinary feature-choice screen, and run the refusal and in-flight revocation cases. Hold the broad mode if the team cannot show its scope or retained derivatives. Publish only claims supported by those observations. Later, when Apple provides rollout details, update compatibility and system instructions separately from the underlying product promise.
The opportunity in this announcement is a clearer relationship with the user. An assistant can earn access by showing a bounded result, describing the next capability accurately, and making withdrawal work. That is a concrete product choice a small team can make today, even while the future macOS controls remain unspecified.
References
- Apple, October 2: Updates to Full Disk Access in macOS
- Apple Developer, macOS App Sandbox file access
- Apple Developer, NSURL bookmarks and security scope
- Apple Developer, Security Overview: sandboxing and privilege separation
- Apple Support, Files & Folders controls on Mac
- Apple Platform Security, controlling app access to files
- Apple Human Interface Guidelines, privacy and permission requests
- Apple Human Interface Guidelines, design principles
- OWASP, LLM06:2025 Excessive Agency