Overview
SuperCmd requires several macOS permissions to provide its core features. The app will prompt you for these permissions on first use, or you can grant them manually in System Settings → Privacy & Security.You may need to restart SuperCmd after granting permissions for them to take effect.
Required Permissions
These permissions are essential for SuperCmd’s core functionality:Accessibility
Why it’s needed:- Window management (tiling, resizing, positioning)
- Snippet expansion (keyboard injection)
- Getting selected text from other apps
Technical details:
SuperCmd uses the macOS Accessibility API (
AXIsProcessTrusted()) to:
- Query window positions and sizes
- Move and resize windows programmatically
- Inject keystrokes for snippet expansion
- Read selected text via AppleScript
src/native/window-adjust.swift, src/native/snippet-expander.swift
Input Monitoring
Why it’s needed:- Detect global keyboard shortcuts (launcher hotkey, hold-to-speak)
- Monitor modifier keys (Fn key for voice input)
- Per-command hotkeys
Technical details:
SuperCmd uses:
CGEventTapCreate()to listen for global key eventsIOHIDManagerto detect Fn key holds- Electron’s
globalShortcutAPI (requires Input Monitoring)
src/native/hotkey-hold-monitor.swift, src/main/main.ts (globalShortcut registration)
Optional Permissions
These permissions enable additional features:Microphone
Why it’s needed:- Voice input (hold-to-speak dictation)
- Whisper speech-to-text
- Only if you plan to use voice input features
- Prompted when you first try to use voice input
If you don’t use voice input, you can safely skip this permission.
AVAudioEnginefor audio captureSFSpeechRecognizerfor native speech recognition- OpenAI Whisper API for transcription (when configured)
src/native/speech-recognizer.swift, src/main/ai-provider.ts (transcribeAudio)
Automation (AppleScript)
Why it’s needed:- Get selected text from the frontmost app
- Get selected files in Finder
- Extension actions that use AppleScript
- When extensions call
getSelectedText()orgetSelectedFinderItems() - For extensions that automate other apps
macOS will automatically prompt you the first time SuperCmd tries to automate an app.
- Extract selected text:
tell application "System Events" to get value of attribute "AXSelectedText" - Get Finder selection:
tell application "Finder" to get selection
src/main/main.ts (IPC handler for get-selected-text)
Permission Summary
| Permission | Required | Purpose |
|---|---|---|
| Accessibility | ✅ Yes | Window management, snippet expansion |
| Input Monitoring | ✅ Yes | Global hotkeys, launcher shortcut |
| Microphone | ⚠️ Optional | Voice input, speech-to-text |
| Automation | ⚠️ Optional | Selected text capture, Finder integration |
Checking Permission Status
SuperCmd includes native helpers to check permission status:Accessibility Check
Microphone Check
Input Monitoring Check
SuperCmd attempts to register a global shortcut and reports failure if Input Monitoring is missing. Source:src/native/input-monitoring-request.swift
Troubleshooting
Global hotkey doesn't work
Global hotkey doesn't work
- Open System Settings → Privacy & Security → Input Monitoring
- Ensure SuperCmd is in the list and enabled
- If not listed, remove and re-add it
- Restart SuperCmd
- Try a different hotkey combination in Settings
Window management doesn't work
Window management doesn't work
- Open System Settings → Privacy & Security → Accessibility
- Ensure SuperCmd is enabled
- If already enabled, uncheck and re-check the box
- Restart SuperCmd
- Test by searching for “Window Management” in the launcher
Voice input doesn't work
Voice input doesn't work
- Check System Settings → Privacy & Security → Microphone
- Ensure SuperCmd is enabled
- Test microphone with another app (Voice Memos)
- Check AI settings (must have Whisper configured)
- Check
/var/log/system.logfor audio capture errors
'Permission denied' when trying to grant permissions
'Permission denied' when trying to grant permissions
This usually means your macOS user account doesn’t have admin privileges:
- Log in with an admin account
- Grant permissions
- Switch back to your standard account
Permissions keep getting revoked
Permissions keep getting revoked
This can happen if:
- The app signature changed (development builds vs. signed releases)
- macOS security policy changed
- The app was moved after permissions were granted
Resetting Permissions
To completely reset all permissions:Next Steps
Settings
Configure app settings
AI Providers
Set up AI integrations
Hotkeys
Customize keyboard shortcuts
Troubleshooting
Common issues and solutions