
AXorcist
github.com/openclaw/axorcist- 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 screen → Element text, attributes, and metadata
Click UI elements programmatically
Target UI element identifier or description → Simulated click interaction
Inspect UI element hierarchy and structure
Application window or UI component → Element tree structure and relationships
Query UI elements with fuzzy matching
Partial or approximate element description → Matching UI elements found on screen
Chain multiple accessibility operations
Sequence of UI interaction commands → Executed automation workflow
Access any visible UI element across applications
Element selector across different macOS apps → Located and accessible UI element reference
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.