> Xcode Hidden Command Line Tools
// A guided tour of the 100+ command line utilities bundled inside Xcode that most iOS developers never discover, organized by what they actually do.
Xcode quietly ships with more than a hundred command line tools, and most of them never get a mention in any tutorial or onboarding doc. They live inside the active toolchain, which you can find with:
ls "$(xcode-select -p)/usr/bin/"
Once you know they exist, a lot of workflows that feel awkward in the GUI become a one liner. Need to symbolicate a crash report from a customer? atos and crashlog. Want to drive the simulator from a script? simctl. Bumping a version number across an entire project? agvtool. The list below organizes everything that comes with current Xcode by what it actually does, so you can scan for the category you need rather than reading an alphabetical dump.
Every tool here is invokable with xcrun <tool> or directly from $(xcode-select -p)/usr/bin/. Most respond to --help, and a few have proper man pages too. Original list and counts come from Terryc21/Xcode-tools.
Build and Compilation
- xcodebuild
Build, test, archive, and export Xcode projects from the command line. The headless equivalent of every button on the Xcode toolbar.
- actool
Compiles asset catalogs (.xcassets) into the runtime binary format used by your app.
- ibtool
Compiles, lints, and upgrades storyboards and XIB files. Backs the Interface Builder editor.
- ibtoold
A background daemon that ibtool talks to during builds.
- momc
Compiles Core Data managed object models (.xcdatamodeld) into the .momd format your app loads at runtime.
- coremlc
Compiles and optimizes Core ML models so they can be loaded at runtime with minimal overhead.
- intentbuilderc
Compiles App Intents definitions into the runtime metadata that powers Siri and Shortcuts integration.
- mapc
Compiles Core Data mapping models used during lightweight migrations between schema versions.
- compileSceneKitShaders
Precompiles SceneKit Metal shaders so they do not have to be compiled at first use.
- copypng
Copies and optimizes PNG files during the build phase, including premultiplying alpha for the iOS device runtime.
- copySceneKitAssets
Copies and processes SceneKit asset catalogs into the format the runtime expects.
- iphoneos-optimize
Converts plists to binary format and optimizes PNG files inside an app bundle. Run automatically during release builds.
- ld
Apple's linker. Combines compiled object files into a final executable, framework, or dylib.
- gcc and g++
Front ends to the Clang compiler for C, C++, and Objective-C source. Despite the name, these are not GNU GCC.
- bitcode-build-tool
Used by the App Store to rebuild apps from their bitcode representation. Mostly historical now.
Testing and Code Quality
- xcresulttool
Reads .xcresult bundles and emits structured JSON. Useful for parsing test output in CI without scraping logs.
- xctest
Runs an XCTest bundle directly without going through xcodebuild. The same runner Xcode invokes when you press Cmd+U.
- xctrace
Records Instruments traces from the command line so you can profile apps in CI or on a build server.
- xccov
Reads code coverage data out of .xcresult bundles. Often used to gate PRs on coverage thresholds.
- amlint
Lints and validates asset catalogs to catch missing image variants and other problems before they reach a build.
Debugging and Profiling
- lldb
The debugger that powers everything you see in the Xcode debug bar. You can also drive it directly for advanced workflows.
- lldb-dap
An adapter that exposes LLDB through the Debug Adapter Protocol so editors like VS Code can use it.
- leaks
Attaches to a running process and reports memory leaks. The CLI version of the Instruments Leaks tool.
- heap
Inspects heap allocations in a running process and groups them by class.
- vmmap
Prints a virtual memory map for a process so you can see where every region comes from.
- malloc_history
Shows the call stack that allocated a given address. Helpful when chasing down where a leaked object came from.
- stringdups
Finds duplicate string literals in a binary that could be deduped to save memory.
- sample
Periodically samples a running process to produce a CPU profile without attaching a full instrument.
- filtercalltree
Filters and inverts call trees produced by Instruments so you can focus on the slow paths.
- symbols
Looks up debug symbols for addresses, useful for symbolicating crash data outside of Xcode.
- atos
Translates raw memory addresses into symbol names for a binary plus dSYM.
- crashlog
Symbolicates and parses .crash and .ips crash report files.
- logdump
Dumps and analyzes archived system log bundles when Console.app is not enough.
- xcdebug
An internal helper used by Xcode itself for debugging session setup. Rarely invoked directly outside of Apple internals.
- xcdiagnose
Collects diagnostic bundles for Apple Developer Technical Support cases.
- instrumentbuilder
Builds custom Instruments packages so you can ship your own profiling tools.
Simulators and Devices
- simctl
Drives the iOS Simulator from the command line. Boot, install, launch, screenshot, set permissions, push notifications.
- devicectl
Manages physical devices over USB or Wi-Fi. Install apps, capture logs, run tests, and inspect device state.
- xcdevice
Lists and queries connected devices. Older but still useful for scripting device discovery.
Code Signing and Distribution
- notarytool
Submits notarization requests to Apple and polls for results. The modern replacement for altool notarization.
- stapler
Staples a notarization ticket onto an app or installer so Gatekeeper can verify it offline.
- altool
The legacy uploader and validator. Mostly replaced by notarytool and Transporter, but still around.
- iTMSTransporter
Uploads builds to App Store Connect. Now mostly a wrapper that defers to the Transporter app.
- xcsigningtool
Performs code signing operations as part of the build pipeline.
- xarsigner
Signs XAR archives, used for some installer formats.
- embeddedBinaryValidationUtility
Validates that embedded binaries inside an app bundle conform to App Store rules.
- CreateIPA
Builds an IPA archive suitable for App Store submission.
- ipatool and ipatool2
Process and validate IPA files outside of the GUI export flow.
Versioning and Project Management
- agvtool
Bumps version and build numbers across an Xcode project in one command. Replaces hand-editing the Info.plist before each release.
- xed
Opens files or projects in Xcode from the terminal. Useful in shell scripts and Makefiles.
- opendiff
Launches FileMerge to diff or merge files visually.
- xcindex-test
Tests Xcode indexing behavior, used internally for diagnosing slow autocomplete.
Localization
- genstrings
Scans source code for NSLocalizedString calls and generates a Localizable.strings file from the keys it finds.
- extractLocStrings
Extracts localized strings out of a compiled binary, the reverse of genstrings.
- xcstringstool
Manages the newer .xcstrings catalog format from the command line.
- convertRichTextToAscii
Strips rich text formatting from a file and writes the plain ASCII equivalent.
Asset Processing
- pngcrush
Apple's bundled copy of the PNG optimizer. Run during builds to shrink raster assets without quality loss.
- TextureAtlas
Creates texture atlases for SpriteKit by packing many small images into one larger texture.
- TextureConverter
Converts texture data between formats for use in graphics pipelines.
- scntool
Processes SceneKit scene files (.scn) for inclusion in app bundles.
- realitytool
Processes RealityKit assets like .usdz and .reality files used in AR experiences.
- referenceobjectc
Compiles ARKit reference objects produced by the Reality Composer scanning workflow.
- placeholderutil
Generates placeholder app icons for builds where the real icons are not yet ready.
- ictool
Processes icon and image assets, primarily for the App Store metadata pipeline.
- compositeMD5
Generates MD5 checksums for App Store assets to verify integrity during upload.
CloudKit and Services
- cktool
Manages CloudKit schemas and records from the command line, including importing and exporting.
- mcpbridge
An internal bridge used by Xcode for Model Context Protocol integration so AI tools and assistants can interact with the project.
Background Assets
- ba-package
Packages Background Assets content into the archive format the runtime downloads.
- ba-serve
Serves Background Assets packs over a local network for testing without uploading to a CDN.
- backgroundassets-debug
Simulates BackgroundAssets extension events so you can exercise download flows on demand.
Safari and Web Extensions
- safari-web-extension-converter
Converts Chrome or Firefox extensions into Safari Web Extension projects.
- safari-web-extension-packager
Packages a Safari Web Extension into the format the App Store accepts.
Resource Forks and Legacy
- Rez
Compiles classic Mac resource description files (.r) into resource forks. Almost entirely historical at this point.
- DeRez
Decompiles a resource fork back into the .r source representation.
- ResMerger
Merges multiple resource fork files into one.
- SplitForks
Splits a file into separate resource and data fork files.
- GetFileInfo
Reads HFS file attributes like creator code and type.
- SetFile
Writes HFS file attributes like creator code and type.
Documentation
- headerdoc2html
Generates HTML documentation from HeaderDoc comments in headers and source files.
- gatherheaderdoc
Combines HeaderDoc output across multiple files into a single table of contents.
- hdxml2manxml
Converts HeaderDoc XML output into the XML format used by xml2man.
- xml2man
Converts XML descriptions into Unix man pages.
Scripting and AppleScript
- sdef
Extracts the scripting definition from an app so you can see what AppleScript or JavaScript for Automation can drive.
- sdp
Converts scripting definitions between formats, useful when generating headers for Scripting Bridge.
Siri and Intelligence
- ssu-cli
A development tool for Apple's Siri natural language understanding stack.
- ssu-cli-app
Tests how a specific app integrates with the Siri stack.
- ssu-cli-nlu
Exercises the natural language understanding component on its own.
Gaming
- gamepolicyctl
Reads and writes the system game policy enforcement settings used by the Game Mode feature.
App Metadata
- swinfo
Prints information about the bundled Swift compiler and runtime versions.
- appleProductTypesTool
Queries the database of Apple product type identifiers, useful when targeting specific hardware.
- desdp
Extracts scripting information out of an app bundle.
- resolveLinks
Resolves symbolic links in a path and prints the canonical destination. Generic filesystem helper used during builds.
Bundled Git
- git
Standard Git, bundled with Xcode so it works out of the box on a fresh Mac.
- git-receive-pack
Server side handler for git push operations.
- git-shell
A restricted login shell that only permits Git operations, used on Git servers.
- git-upload-archive
Server side handler for git archive over SSH.
- git-upload-pack
Server side handler for git fetch and clone operations.
- scalar
A wrapper around Git designed to scale to very large repositories.
Bundled Python
- python3 and python3.9
The Python interpreter bundled with Xcode for use by build scripts and tooling.
- pip3 and pip3.9
The Python package manager that pairs with the bundled interpreter.
- pydoc3 and pydoc3.9
The Python documentation viewer.
- 2to3 and 2to3-3.9
A migration tool for converting Python 2 source to Python 3.
Build System
- make and gnumake
GNU Make, bundled so build scripts that depend on it work without a separate Homebrew install.