Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

permiso-accessibility-permissionspermiso 可访问权限

Agent Skill

用于辅助无障碍访问检查、页面可用性审计和前端可访问性改进。它适合让 Agent 检查语义标签、键盘操作、颜色对比、ARIA 属性和自动化检测结果。使用时需要结合真实页面和浏览器验证,不应只依赖静态文本判断;涉及修复建议时,应兼顾设计系统、组件复用和 WCAG 等通用无障碍规范。

总安装

3,574

周安装

146

GitHub Stars

39

下载量

1,145
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:permiso-accessibility-permissions(permiso 可访问权限)
来源仓库:https://github.com/aradotso/trending-skills
仓库路径:skills/permiso-accessibility-permissions
安装命令:
npx skills add https://github.com/aradotso/trending-skills --skill permiso-accessibility-permissions
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/aradotso/trending-skills --skill permiso-accessibility-permissions

简介

用于辅助无障碍访问检查、页面可用性审计和前端可访问性改进。

  • 它适合让 Agent 检查语义标签、键盘操作、颜色对比、ARIA 属性和自动化检测结果。
  • 使用时需要结合真实页面和浏览器验证,不应只依赖静态文本判断;涉及修复建议时,应兼顾设计系统、组件复用和 WCAG 等通用无障碍规范。
  • 它属于研究检索类工具,适用于前端可访问性场景。
  • permiso-accessibility-permissions 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Permiso — macOS Permission Dialog Helper

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.

What It Does

  • Presents an animated, guided overlay panel directing users to open System Settings and enable specific permissions (e.g. Accessibility)
  • Mirrors the UX pattern from Codex Computer Use: an on-screen assistant that walks users through enabling access
  • Handles the common friction point of macOS permission flows with a clear, app-integrated UI

Installation

Swift Package Manager

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"]
)

Core API

Basic Usage

import Permiso

@MainActor
func showAccessibilityHelper() {
    PermisoAssistant.shared.present(panel: .accessibility)
}

Triggering on App Launch

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)
        }
    }
}

AppDelegate Pattern

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)
    }
}

Common Patterns

Check Permission Before Sensitive Actions

import Permiso
import ApplicationServices

@MainActor
func performAccessibilityAction() {
    guard AXIsProcessTrusted() else {
        PermisoAssistant.shared.present(panel: .accessibility)
        return
    }
    // Proceed with accessibility-dependent work
    doAccessibilityWork()
}

Polling for Permission Grant

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()
                }
            }
    }
}

SwiftUI View Integration

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)
    }
}

Requirements

  • macOS: The library targets macOS (version as specified by the package; check for macOS 13+ for best compatibility)
  • Swift: Swift 5.9+
  • Main Actor: PermisoAssistant.shared.present(panel:) must be called from the main thread / @MainActor context

Entitlements / Info.plist

For 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)

Troubleshooting

Panel doesn't appear

  • Ensure you're calling from @MainActor / main thread
  • Check that your app has a visible window; the panel attaches to the app's UI context

AXIsProcessTrusted() returns false even after granting

  • macOS caches trust state; the app may need to be relaunched or the check polled with a timer (see polling pattern above)
  • Some sandboxed apps require a full app restart after granting accessibility

Build errors: cannot find 'PermisoAssistant' in scope

  • Confirm import Permiso is at the top of the file
  • Confirm the package is added to the correct target in Xcode, not just the project

Panel appears but dismisses immediately

  • Make sure you're not overriding the window or calling dismiss logic right after present
  • Avoid calling present inside a Task {} that gets cancelled immediately

Key Types Reference

TypeDescription
PermisoAssistantSingleton entry point — use .shared
PermisoAssistant.shared.present(panel:)Shows the guided permission dialog
.accessibilityPanel type for Accessibility settings

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.6%
按下载量换算396

Claude

30.34%
按下载量换算347

Cursor

18.21%
按下载量换算209

Gemini CLI

8.29%
按下载量换算95

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills