Vibeleaderboard
Index / tool
Visit axorcist.dev
Category
Developer Tools
Rank
No. 1328Tools index

Previous survey · No. 1333 ·

Pricing
Open Source
Type
TOOL
Builder
openclaw
GitHub
323 stars
Latest release
v0.1.9
Date

About

Swift wrapper for macOS Accessibility — chainable, fuzzy-matched queries that read, click, and inspect any UI element on screen.

What it does

AXorcist gives Swift programs and shell scripts structured access to macOS accessibility data. It models interface elements, attributes, actions, permissions, hierarchy traversal, notifications, and batches. Simple shell commands handle finding elements and printing trees, while a JSON protocol exposes more advanced operations.

Why it's ranked here

This is a credible choice for native macOS automation because it serves both application developers and shell users from one command architecture. Typed Swift access, structured JSON responses, flexible matching, permission checks, and batch execution give it meaningful depth beyond a narrow inspection utility.

What's good

Search supports exact, substring, regular expression, prefix, suffix, and multi-value matching. Queries can combine criteria, use alternative logic, follow hierarchy hints, limit traversal depth, and request selected attributes. The element layer can reuse prefetched attributes and children, reducing repeated accessibility calls during deeper traversal.

Tradeoffs

It requires macOS 14 or later and explicit Accessibility permission. Operations run under main-actor isolation, which shapes integration choices. Observation is also uneven: release builds set up an observer but do not keep the process alive indefinitely. Three declared command variants are explicitly routed to not-implemented responses.

How to use it well

Use it for native macOS workflow automation, accessibility utilities, application testing, and diagnostics where the accessibility tree is the right control surface. Start with the readable find and tree commands, then adopt the JSON protocol or Swift library for richer flows. It does not cover cross-platform automation or replace browser-specific tooling.

Technical notes+

Package.swift defines Swift 6 language mode, a macOS 14 platform floor, the AXorcist library product, the axorc executable, and AXorcistTests. Sources/axorc/CLIFrontend.swift implements permissions, find, tree, and raw frontends; Sources/axorc/AXORCMain.swift accepts JSON from standard input, files, strings, or direct arguments. Sources/axorc/CommandExecutor.swift dispatches typed commands and explicitly marks three cases unimplemented. Sources/axorc/CommandTypeExtensions.swift converts CLI envelopes into library commands. Sources/AXorcist/Core/Element.swift wraps AXUIElement, consults prefetched values first, and falls back to native attribute calls. Makefile builds arm64 and x86_64 releases before combining and signing them, while docs/releasing.md documents Developer ID signing, notarization, checksum verification, and Homebrew publication.

Observed

Primary language
Swift, using Swift 6 language mode.
Platform support
macOS 14.0 and later only.
Package surface
Swift Package Manager package with a library product and executable product.
Install surface
Homebrew installation or a release build from source.
Interfaces
Swift library, command-line interface, and JSON command protocol.
Architecture support
Release tooling builds a universal arm64 and x86_64 macOS binary.
Testing structure
The package declares a dedicated test target.

Read from README.md, Makefile, docs/releasing.md, Package.swift, Sources/axorc/AXORCMain.swift, Sources/axorc/CLIFrontend.swift, Sources/axorc/CommandExecutor.swift, Sources/axorc/CommandHandlers.swift, Sources/axorc/CLIOutputRenderer.swift, Sources/axorc/CommandTypeExtensions.swift, Sources/axorc/CommandResponseHelpers.swift, Sources/axorc/CommandExecutionFunctions.swift, Sources/AXorcist/Core/AXApp.swift, Sources/AXorcist/Core/Element.swift.

What it can do

  • Read UI element properties and content

    macOS UI element on screenElement text, attributes, and metadata

  • Click UI elements programmatically

    Target UI element identifier or descriptionSimulated click interaction

  • Inspect UI element hierarchy and structure

    Application window or UI componentElement tree structure and relationships

  • Query UI elements with fuzzy matching

    Partial or approximate element descriptionMatching UI elements found on screen

  • Chain multiple accessibility operations

    Sequence of UI interaction commandsExecuted automation workflow

  • Access any visible UI element across applications

    Element selector across different macOS appsLocated and accessible UI element reference

Tags

macosaccessibilityswiftautomationopenclaw

Tech Stack

Swift

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.