node package manager


IOS Instruments + instruments-without-delay launcher used by Appium


Build Status Coverage Status

Wrapper module around iOS Instruments and instruments-without-delay.

Note: Issue tracking for this repo has been disabled. Please use the main Appium issue tracker instead.

The module exports two objects: Instruments (default) and utils.


Exposes a number of helper functions.


  • The base of the package, wherever it is installed


  • Kill all Instruments processes currently running.


  • Delete all the trace directories that the system knows of.


  • Retrieve the path to the Instruments binary.


  • Retrieve a list of the devices that Instruments supports.


  • Get the launchTimeout into a standard state. If it is a String it is parsed as JSON. If it is a number, or if the parsed version is a number, it is added to an object as global (so that the result is {global: launchTimeout}).



  • Launches an instruments test with a default test that immediately passes. In this way we can start a simulator and be notified when it completely launches.


  • Factory for making an Instruments object with sane defaults.


This is the main class, exported as default, for the package. Through this class programs can interact with Apple's Instruments program.

The class has one static class method:


  • Factory for making an Instruments object with sane defaults.

And a number of object methods:


  • args - opts - an object with values to be set on the newly created object.
    • app
    • termTimeout - defaults to 5000
    • flakeyRetries - defaults to 0
    • udid
    • bootstrap
    • template
    • withoutDelay
    • processArguments
    • simulatorSdkAndDevice
    • tmpDir - defaults to /tmp/appium-instruments
    • traceDir
    • launchTimeout - defaults to 90000
    • webSocket
    • instrumentsPath

launchOnce - async

  • Launch Instruments without any retries.

launch - async

  • Launch Instruments up to flakeyRetries (specified in constructor) times.

spawnInstruments - async

  • Actually launch the Instruments process.

shutdown - async

  • Cleanly shutdown the currently running Instruments process.