This guide explains how to use Reloaderoo for interacting with XcodeBuildMCP as a CLI to save context window space.
You can use this guide to prompt your agent, but providing the entire document will give you no actual benefits. You will end up using more context than just using MCP server directly. So it's recommended that you curate this document by removing the example commands that you don't need and just keeping the ones that are right for your project. You'll then want to keep this file within your project workspace and then include it in the context window when you need to interact your agent to use XcodeBuildMCP tools.
Important
Please remove this introduction before you prompt your agent with this file or any derrived version of it.
Reloaderoo is available via npm and can be used with npx for universal compatibility.
# Use npx to run reloaderoo
npx reloaderoo@latest --helpExample Tool Calls:
build_device: Builds an app for a physical device.npx reloaderoo@latest inspect call-tool build_device --params '{"projectPath": "/path/to/MyProject.xcodeproj", "scheme": "MyScheme"}' -- node build/index.jsget_device_app_path: Gets the.appbundle path for a device build.npx reloaderoo@latest inspect call-tool get_device_app_path --params '{"projectPath": "/path/to/MyProject.xcodeproj", "scheme": "MyScheme"}' -- node build/index.jsinstall_app_device: Installs an app on a physical device.npx reloaderoo@latest inspect call-tool install_app_device --params '{"deviceId": "DEVICE_UDID", "appPath": "/path/to/MyApp.app"}' -- node build/index.jslaunch_app_device: Launches an app on a physical device.npx reloaderoo@latest inspect call-tool launch_app_device --params '{"deviceId": "DEVICE_UDID", "bundleId": "com.example.MyApp"}' -- node build/index.jslist_devices: Lists connected physical devices.npx reloaderoo@latest inspect call-tool list_devices --params '{}' -- node build/index.jsstop_app_device: Stops an app on a physical device.npx reloaderoo@latest inspect call-tool stop_app_device --params '{"deviceId": "DEVICE_UDID", "processId": 12345}' -- node build/index.jstest_device: Runs tests on a physical device.npx reloaderoo@latest inspect call-tool test_device --params '{"projectPath": "/path/to/MyProject.xcodeproj", "scheme": "MyScheme", "deviceId": "DEVICE_UDID"}' -- node build/index.js
boot_sim: Boots a simulator.npx reloaderoo@latest inspect call-tool boot_sim --params '{"simulatorId": "SIMULATOR_UUID"}' -- node build/index.jsbuild_run_sim: Builds and runs an app on a simulator.npx reloaderoo@latest inspect call-tool build_run_sim --params '{"projectPath": "/path/to/MyProject.xcodeproj", "scheme": "MyScheme", "simulatorName": "iPhone 16"}' -- node build/index.jsbuild_sim: Builds an app for a simulator.npx reloaderoo@latest inspect call-tool build_sim --params '{"projectPath": "/path/to/MyProject.xcodeproj", "scheme": "MyScheme", "simulatorName": "iPhone 16"}' -- node build/index.jsget_sim_app_path: Gets the.appbundle path for a simulator build.npx reloaderoo@latest inspect call-tool get_sim_app_path --params '{"projectPath": "/path/to/MyProject.xcodeproj", "scheme": "MyScheme", "platform": "iOS Simulator", "simulatorName": "iPhone 16"}' -- node build/index.jsinstall_app_sim: Installs an app on a simulator.npx reloaderoo@latest inspect call-tool install_app_sim --params '{"simulatorId": "SIMULATOR_UUID", "appPath": "/path/to/MyApp.app"}' -- node build/index.jslaunch_app_logs_sim: Launches an app on a simulator with log capture.npx reloaderoo@latest inspect call-tool launch_app_logs_sim --params '{"simulatorId": "SIMULATOR_UUID", "bundleId": "com.example.MyApp"}' -- node build/index.jslaunch_app_sim: Launches an app on a simulator.npx reloaderoo@latest inspect call-tool launch_app_sim --params '{"simulatorName": "iPhone 16", "bundleId": "com.example.MyApp"}' -- node build/index.jslist_sims: Lists available simulators.npx reloaderoo@latest inspect call-tool list_sims --params '{}' -- node build/index.jsopen_sim: Opens the Simulator application.npx reloaderoo@latest inspect call-tool open_sim --params '{}' -- node build/index.jsstop_app_sim: Stops an app on a simulator.npx reloaderoo@latest inspect call-tool stop_app_sim --params '{"simulatorName": "iPhone 16", "bundleId": "com.example.MyApp"}' -- node build/index.jstest_sim: Runs tests on a simulator.npx reloaderoo@latest inspect call-tool test_sim --params '{"projectPath": "/path/to/MyProject.xcodeproj", "scheme": "MyScheme", "simulatorName": "iPhone 16"}' -- node build/index.js
start_device_log_cap: Starts log capture for a physical device.npx reloaderoo@latest inspect call-tool start_device_log_cap --params '{"deviceId": "DEVICE_UDID", "bundleId": "com.example.MyApp"}' -- node build/index.jsstart_sim_log_cap: Starts log capture for a simulator.npx reloaderoo@latest inspect call-tool start_sim_log_cap --params '{"simulatorUuid": "SIMULATOR_UUID", "bundleId": "com.example.MyApp"}' -- node build/index.jsstop_device_log_cap: Stops log capture for a physical device.npx reloaderoo@latest inspect call-tool stop_device_log_cap --params '{"logSessionId": "SESSION_ID"}' -- node build/index.jsstop_sim_log_cap: Stops log capture for a simulator.npx reloaderoo@latest inspect call-tool stop_sim_log_cap --params '{"logSessionId": "SESSION_ID"}' -- node build/index.js
build_macos: Builds a macOS app.npx reloaderoo@latest inspect call-tool build_macos --params '{"projectPath": "/path/to/MyProject.xcodeproj", "scheme": "MyScheme"}' -- node build/index.jsbuild_run_macos: Builds and runs a macOS app.npx reloaderoo@latest inspect call-tool build_run_macos --params '{"projectPath": "/path/to/MyProject.xcodeproj", "scheme": "MyScheme"}' -- node build/index.jsget_mac_app_path: Gets the.appbundle path for a macOS build.npx reloaderoo@latest inspect call-tool get_mac_app_path --params '{"projectPath": "/path/to/MyProject.xcodeproj", "scheme": "MyScheme"}' -- node build/index.jslaunch_mac_app: Launches a macOS app.npx reloaderoo@latest inspect call-tool launch_mac_app --params '{"appPath": "/Applications/Calculator.app"}' -- node build/index.jsstop_mac_app: Stops a macOS app.npx reloaderoo@latest inspect call-tool stop_mac_app --params '{"appName": "Calculator"}' -- node build/index.jstest_macos: Runs tests for a macOS project.npx reloaderoo@latest inspect call-tool test_macos --params '{"projectPath": "/path/to/MyProject.xcodeproj", "scheme": "MyScheme"}' -- node build/index.js
discover_projs: Discovers Xcode projects and workspaces.npx reloaderoo@latest inspect call-tool discover_projs --params '{"workspaceRoot": "/path/to/workspace"}' -- node build/index.jsget_app_bundle_id: Gets an app's bundle identifier.npx reloaderoo@latest inspect call-tool get_app_bundle_id --params '{"appPath": "/path/to/MyApp.app"}' -- node build/index.jsget_mac_bundle_id: Gets a macOS app's bundle identifier.npx reloaderoo@latest inspect call-tool get_mac_bundle_id --params '{"appPath": "/Applications/Calculator.app"}' -- node build/index.jslist_schemes: Lists schemes in a project or workspace.npx reloaderoo@latest inspect call-tool list_schemes --params '{"projectPath": "/path/to/MyProject.xcodeproj"}' -- node build/index.jsshow_build_settings: Shows build settings for a scheme.npx reloaderoo@latest inspect call-tool show_build_settings --params '{"projectPath": "/path/to/MyProject.xcodeproj", "scheme": "MyScheme"}' -- node build/index.js
scaffold_ios_project: Scaffolds a new iOS project.npx reloaderoo@latest inspect call-tool scaffold_ios_project --params '{"projectName": "MyNewApp", "outputPath": "/path/to/projects"}' -- node build/index.jsscaffold_macos_project: Scaffolds a new macOS project.npx reloaderoo@latest inspect call-tool scaffold_macos_project --params '{"projectName": "MyNewMacApp", "outputPath": "/path/to/projects"}' -- node build/index.js
clean: Cleans build artifacts.# For a project npx reloaderoo@latest inspect call-tool clean --params '{"projectPath": "/path/to/MyProject.xcodeproj"}' -- node build/index.js # For a workspace npx reloaderoo@latest inspect call-tool clean --params '{"workspacePath": "/path/to/MyWorkspace.xcworkspace", "scheme": "MyScheme"}' -- node build/index.js
reset_sim_location: Resets a simulator's location.npx reloaderoo@latest inspect call-tool reset_sim_location --params '{"simulatorUuid": "SIMULATOR_UUID"}' -- node build/index.jsset_sim_appearance: Sets a simulator's appearance (dark/light mode).npx reloaderoo@latest inspect call-tool set_sim_appearance --params '{"simulatorUuid": "SIMULATOR_UUID", "mode": "dark"}' -- node build/index.jsset_sim_location: Sets a simulator's GPS location.npx reloaderoo@latest inspect call-tool set_sim_location --params '{"simulatorUuid": "SIMULATOR_UUID", "latitude": 37.7749, "longitude": -122.4194}' -- node build/index.jssim_statusbar: Overrides a simulator's status bar.npx reloaderoo@latest inspect call-tool sim_statusbar --params '{"simulatorUuid": "SIMULATOR_UUID", "dataNetwork": "wifi"}' -- node build/index.js
swift_package_build: Builds a Swift package.npx reloaderoo@latest inspect call-tool swift_package_build --params '{"packagePath": "/path/to/package"}' -- node build/index.jsswift_package_clean: Cleans a Swift package.npx reloaderoo@latest inspect call-tool swift_package_clean --params '{"packagePath": "/path/to/package"}' -- node build/index.jsswift_package_list: Lists running Swift package processes.npx reloaderoo@latest inspect call-tool swift_package_list --params '{}' -- node build/index.jsswift_package_run: Runs a Swift package executable.npx reloaderoo@latest inspect call-tool swift_package_run --params '{"packagePath": "/path/to/package"}' -- node build/index.jsswift_package_stop: Stops a running Swift package process.npx reloaderoo@latest inspect call-tool swift_package_stop --params '{"pid": 12345}' -- node build/index.jsswift_package_test: Tests a Swift package.npx reloaderoo@latest inspect call-tool swift_package_test --params '{"packagePath": "/path/to/package"}' -- node build/index.js
doctor: Runs system diagnostics.npx reloaderoo@latest inspect call-tool doctor --params '{}' -- node build/index.js
button: Simulates a hardware button press.npx reloaderoo@latest inspect call-tool button --params '{"simulatorUuid": "SIMULATOR_UUID", "buttonType": "home"}' -- node build/index.jsdescribe_ui: Gets the UI hierarchy of the current screen.npx reloaderoo@latest inspect call-tool describe_ui --params '{"simulatorUuid": "SIMULATOR_UUID"}' -- node build/index.jsgesture: Performs a pre-defined gesture.npx reloaderoo@latest inspect call-tool gesture --params '{"simulatorUuid": "SIMULATOR_UUID", "preset": "scroll-up"}' -- node build/index.jskey_press: Simulates a key press.npx reloaderoo@latest inspect call-tool key_press --params '{"simulatorUuid": "SIMULATOR_UUID", "keyCode": 40}' -- node build/index.jskey_sequence: Simulates a sequence of key presses.npx reloaderoo@latest inspect call-tool key_sequence --params '{"simulatorUuid": "SIMULATOR_UUID", "keyCodes": [40, 42, 44]}' -- node build/index.jslong_press: Performs a long press at coordinates.npx reloaderoo@latest inspect call-tool long_press --params '{"simulatorUuid": "SIMULATOR_UUID", "x": 100, "y": 200, "duration": 1500}' -- node build/index.jsscreenshot: Takes a screenshot.npx reloaderoo@latest inspect call-tool screenshot --params '{"simulatorUuid": "SIMULATOR_UUID"}' -- node build/index.jsswipe: Performs a swipe gesture.npx reloaderoo@latest inspect call-tool swipe --params '{"simulatorUuid": "SIMULATOR_UUID", "x1": 100, "y1": 200, "x2": 100, "y2": 400}' -- node build/index.jstap: Performs a tap at coordinates.npx reloaderoo@latest inspect call-tool tap --params '{"simulatorUuid": "SIMULATOR_UUID", "x": 100, "y": 200}' -- node build/index.jstouch: Simulates a touch down or up event.npx reloaderoo@latest inspect call-tool touch --params '{"simulatorUuid": "SIMULATOR_UUID", "x": 100, "y": 200, "down": true}' -- node build/index.jstype_text: Types text into the focused element.npx reloaderoo@latest inspect call-tool type_text --params '{"simulatorUuid": "SIMULATOR_UUID", "text": "Hello, World!"}' -- node build/index.js
- Read devices resource:
npx reloaderoo@latest inspect read-resource "xcodebuildmcp://devices" -- node build/index.js - Read simulators resource:
npx reloaderoo@latest inspect read-resource "xcodebuildmcp://simulators" -- node build/index.js - Read doctor resource:
npx reloaderoo@latest inspect read-resource "xcodebuildmcp://doctor" -- node build/index.js