Skip to content

cameroncooke/AXe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

168 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AXe

AXe is a comprehensive CLI tool for interacting with iOS Simulators using Apple's HID (Human Interface Device) functionality.

CI Licence: MIT

Install

brew tap cameroncooke/axe
brew install axe

Or install in one command:

brew install cameroncooke/axe/axe

Verify the CLI:

axe --help
axe list-simulators

Xcode compatibility

AXe supports Xcode 26 and Xcode 27. Xcode 27 simulator automation uses Device Hub; Simulator.app is not required.

Release artifacts are built once with the Xcode version selected by the release environment and run unchanged with either supported Xcode selected. Compatibility was validated with Xcode 26.5 (build 17F42) and iOS 26.5 (23F77), and with Xcode 27 Beta 3 (build 27A5218g) and iOS 27 (24A5380g).

AXe builds IDB from the immutable fork revision cameroncooke/idb@1395103ca786ee990c70514e1f8bb75fa98cdd82, based on upstream IDB e682506725e9efefb9c43b8b917c0b12eb2a5939. The build does not apply a local patch queue.

E2E development

make e2e rebuilds the local IDB XCFrameworks, builds AXe, and runs the simulator tests with the Xcode selected by DEVELOPER_DIR or xcode-select. XcodeGen is required to generate the IDB projects. When Xcode 27 is selected, the runner starts Device Hub, chooses an available iOS 27 iPhone 17 Pro, and boots it with simctl.

To validate a release payload unchanged under another supported Xcode, first build the test bundle with that Xcode, then run AXE_BIN_PATH=/path/to/release/axe ./test-runner.sh --tests-only. The supplied executable must retain its packaged frameworks beside it.

Basic usage

# Find a booted simulator UDID
axe list-simulators
export UDID=<UDID>

# Inspect the current UI
axe describe-ui --udid "$UDID"

# Interact with the simulator
axe tap --label "Continue" --udid "$UDID"
axe type 'Hello world' --udid "$UDID"
axe screenshot --output ./screen.png --udid "$UDID"

Documentation

Full documentation is available at axe-cli.com/docs.

Disclaimer

AXe is an independent open-source iOS Simulator automation project and is not affiliated with, endorsed by, or associated with Deque Systems or its axe® accessibility products.

Licence

This project is licensed under the MIT License. See LICENSE for details.

Third-party licensing notices, including Meta's IDB MIT attribution, are in THIRD_PARTY_LICENSES.

About

AXe is a CLI tool for interacting with Simulators using Apple's Private Accessibility APIs.

Topics

Resources

License

Code of conduct

Stars

2.1k stars

Watchers

11 watching

Forks

Sponsor this project

  •  

Contributors