skills/permiso-accessibility-permissions/SKILL.md
Permission dialog UI for macOS accessibility and privacy settings, replicating the Codex Computer Use guided permissions flow
npx skillsauth add aradotso/trending-skills permiso-accessibility-permissionsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Skill by ara.so — Daily 2026 Skills collection.
Permiso provides a polished permission dialog UI for macOS apps that guides users through enabling accessibility and privacy settings — replicating the guided flow seen in OpenAI's Codex Computer Use product.
Add to your Package.swift:
dependencies: [
.package(url: "https://github.com/zats/permiso", branch: "main")
]
Or in Xcode: File → Add Package Dependencies → enter https://github.com/zats/permiso
Then add Permiso to your target's dependencies:
.target(
name: "YourApp",
dependencies: ["Permiso"]
)
import Permiso
@MainActor
func showAccessibilityHelper() {
PermisoAssistant.shared.present(panel: .accessibility)
}
import SwiftUI
import Permiso
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.onAppear {
checkAndRequestAccessibility()
}
}
}
@MainActor
func checkAndRequestAccessibility() {
let trusted = AXIsProcessTrusted()
if !trusted {
PermisoAssistant.shared.present(panel: .accessibility)
}
}
}
import AppKit
import Permiso
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationDidFinishLaunching(_ notification: Notification) {
requestAccessibilityIfNeeded()
}
@MainActor
func requestAccessibilityIfNeeded() {
guard !AXIsProcessTrusted() else { return }
PermisoAssistant.shared.present(panel: .accessibility)
}
}
import Permiso
import ApplicationServices
@MainActor
func performAccessibilityAction() {
guard AXIsProcessTrusted() else {
PermisoAssistant.shared.present(panel: .accessibility)
return
}
// Proceed with accessibility-dependent work
doAccessibilityWork()
}
import Permiso
import ApplicationServices
import Combine
class PermissionMonitor: ObservableObject {
@Published var isAccessibilityGranted = false
private var timer: AnyCancellable?
@MainActor
func startMonitoring() {
if AXIsProcessTrusted() {
isAccessibilityGranted = true
return
}
PermisoAssistant.shared.present(panel: .accessibility)
timer = Timer.publish(every: 1.0, on: .main, in: .common)
.autoconnect()
.sink { [weak self] _ in
if AXIsProcessTrusted() {
self?.isAccessibilityGranted = true
self?.timer?.cancel()
}
}
}
}
import SwiftUI
import Permiso
struct SettingsView: View {
@State private var accessibilityGranted = AXIsProcessTrusted()
var body: some View {
VStack(spacing: 16) {
HStack {
Image(systemName: accessibilityGranted ? "checkmark.circle.fill" : "xmark.circle.fill")
.foregroundColor(accessibilityGranted ? .green : .red)
Text("Accessibility Access")
}
if !accessibilityGranted {
Button("Enable Accessibility Access") {
requestAccess()
}
.buttonStyle(.borderedProminent)
}
}
.padding()
.onReceive(Timer.publish(every: 2, on: .main, in: .common).autoconnect()) { _ in
accessibilityGranted = AXIsProcessTrusted()
}
}
@MainActor
func requestAccess() {
PermisoAssistant.shared.present(panel: .accessibility)
}
}
PermisoAssistant.shared.present(panel:) must be called from the main thread / @MainActor contextFor accessibility usage, ensure your app's Info.plist includes a usage description (though macOS doesn't require this like iOS, it's good practice), and that your app is not sandboxed or has the correct entitlements if it needs to use accessibility APIs:
<!-- In your .entitlements file if needed -->
<key>com.apple.security.temporary-exception.apple-events</key>
<true/>
For apps that actually use accessibility features after permission is granted:
// Request trust prompt (system dialog) alongside Permiso's guided UI
let options = [kAXTrustedCheckOptionPrompt.takeRetainedValue(): true] as CFDictionary
AXIsProcessTrustedWithOptions(options)
Panel doesn't appear
@MainActor / main threadAXIsProcessTrusted() returns false even after granting
Build errors: cannot find 'PermisoAssistant' in scope
import Permiso is at the top of the filePanel appears but dismisses immediately
Task { } that gets cancelled immediately| Type | Description |
|------|-------------|
| PermisoAssistant | Singleton entry point — use .shared |
| PermisoAssistant.shared.present(panel:) | Shows the guided permission dialog |
| .accessibility | Panel type for Accessibility settings |
development
```markdown --- name: compose-performance-skills description: Install and use the skydoves/compose-performance-skills agent skill library to diagnose and fix Jetpack Compose performance issues including stability, recomposition, lazy layouts, modifiers, side effects, and build configuration. triggers: - "my composable recomposes too often" - "LazyColumn drops frames during scroll" - "diagnose Compose stability issues" - "fix unnecessary recomposition in Jetpack Compose" - "optimize Com
development
Headless iOS Simulator manager with host-side HID input injection, 60fps streaming, and device farm web UI for iOS 26
development
```markdown --- name: claude-code-game-studios description: Turn Claude Code into a full 49-agent game dev studio with 72 workflow skills, automated hooks, and a real studio hierarchy for Godot, Unity, and Unreal projects. triggers: - "set up claude code game studios" - "use ai agents for game development" - "set up game dev studio with claude" - "add game studio agents to my project" - "how do I use claude code for game dev" - "set up godot unity unreal ai workflow" - "49 agents g
development
```markdown --- name: xq-py-quantum-vm description: Python implementation of the Quip Network's quantum virtual machine (xqvm) triggers: - quantum virtual machine python - xqvm quip network - quantum circuit simulation python - xq-py quantum vm - quip network quantum python - simulate quantum gates python - quantum vm xqvm - xqvm-py quantum circuit --- # xq-py Quantum Virtual Machine > Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. `xqvm-py` is a Python impl