Grux OS declares nine macOS permissions, and only five of them are required by any feature at all. An assistant that can see your screen and act on your machine does need more permissions than a normal application, but the useful question is not how many it asks for, it is what refusing each one costs. The other four are asked for by features that still work without them, just with less in them. Every permission is requested the first time you open the feature that needs it rather than in a wall at first launch, and refusing one disables exactly that feature and nothing else. Full Disk Access, the one most worth refusing by default, is required by nothing anywhere in the app and unlocks a single Labs feature.
| Permission | Required by | What refusing costs you |
|---|---|---|
| Microphone | Meetings | Voice input in Chat and Reactor |
| System audio capture | Meetings | The other half of the call, not your mic |
| Screen Recording | Focus log | Screen context in Chat |
| Calendar | Calendar | The agenda on Today, calendar tools in Chat |
| Contacts | Contacts | Contact lookup in Chat |
| Automation | Nothing | Commands, app control from Chat |
| Accessibility | Nothing | Window and selection awareness, detail in Focus log |
| Notifications | Nothing | Alerts from Schedules, Workflows and Focus log |
| Full Disk Access | Nothing | One Labs feature, and nothing else anywhere |
One key and no permissions. Chat needs an Anthropic key or a local Ollama endpoint and nothing else. Pick no features during setup and the app asks for nothing beyond a model to answer with.
ScreenCaptureKit, AppleEvents and cross-app microphone access do not exist inside the App Sandbox, so an app that captures your screen and drives other applications cannot be sandboxed and still do those things. That means the operating system's own path allowlist is not available either, and the filesystem boundary is enforced in Swift instead, in a single file.
All nine are declared and shown during setup, but the app does not yet check every one immediately before the system call that needs it. macOS still enforces them either way. What you may get is nothing back, rather than an explanation of which permission was missing.
| Claim | Source |
|---|---|
| Grux OS declares nine macOS permissions, only five required by any feature | README, Permissions |
| Every permission is requested the first time you open the feature that needs it | README, Permissions |
| Full Disk Access is required by nothing, unlocks one Labs feature | README, Permissions |
| A test parses the permission table from the README against the feature registry | PermissionTableTests.swift |
| The filesystem boundary is enforced in Swift, in a single file | README, Permissions |