macOS CLI · Xcode Tooling · Open Source

A CLI Tool for Apple Developers

xcodex supports developers with typical workflows around iOS, iPadOS and macOS projects. It bundles build, tests, simulator control, device management, archives, TestFlight/App Store delivery, localization, code coverage, crash analysis and project maintenance in one terminal-based tool. The tool is designed for projects developed with Xcode but is not affiliated with Apple or Xcode.

xcodex — ~/Projects/MyApp
xcodex terminal interface in action
10 Categories
> 100 Actions
0 Dependencies
4 MB Binary

Split-pane. Keyboard-driven.

Categories on the left, actions on the right. Navigate with arrow keys, execute with Enter. Settings persist automatically between sessions.

xcodex — Split-Pane Interface
xcodex split-pane interface

Navigate within the active pane

Switch between category and action pane

Execute the selected command

H

Show context-sensitive help overlay

Q

Quit the application

Ten categories.
Every daily workflow.

No flag lookup. No context switching. Zero setup — one interface that covers everything Apple developers do every day:

Build & Run

Build and launch with preset optimizations — Quick Reset, Full Reset or straight Build & Run. Isolated DerivedData, every time.

  • Build
  • Build & Run
  • Quick Reset & Build
  • Full Reset & Build
  • Isolated DerivedData
  • Project configuration inspector
6 actions

Test

Unit tests, UI tests, or all tests at once — with automatically applied build optimizations and 3-state result reporting.

  • Run unit tests
  • Run UI tests
  • Run all tests
  • 3-state results (✅ ⚠️ ❌)
  • Compile-only / run-only modes
5 actions

Automated Tests

Run tests on a configurable schedule — from 1 minute to 24 hours. Live display and macOS notification on completion.

  • Configurable interval (1 min – 24 h)
  • Schemes & test plans
  • Live result display
  • macOS notification on completion
  • Automatic repeat
5 actions

App Store & Distribution

Archive, export and upload directly to TestFlight and the App Store — for iOS and macOS. Fully automated from the terminal.

  • Archive & IPA (iOS)
  • Upload to TestFlight
  • App Store submission
  • DMG, Notarize & Staple (macOS)
  • Release checks & notes from Git
  • Manage archives
13 actions

Dependencies

Resolve and inspect SPM, CocoaPods and Carthage — without memorizing a single flag.

  • Show dependency graph
  • Resolve all (SPM + Pods + Carthage)
  • Resolve SPM only
  • Resolve CocoaPods only
  • Resolve Carthage only
5 actions

Clean & Cache

Remove build artifacts, clear DerivedData, Simulator caches and Module Cache in one step.

  • xcodebuild clean
  • Delete DerivedData
  • Delete Simulator Cache
  • Delete Xcode Caches
  • Delete all caches at once
8 actions

Simulator

Launch, restart, reset, screenshot, record. Toggle Dark/Light Mode — all without leaving the terminal.

  • Launch & restart app
  • Screenshot → Desktop (PNG)
  • Video recording (MP4)
  • Dark / Light Mode toggle
  • Full simulator reset
8+ actions

Physical Devices

Install, launch and stream logs directly on iPhones and iPads — auto-detected, no Xcode GUI needed.

  • Install app on device
  • Launch app
  • List installed apps
  • Live device log
  • Auto-detection via devicectl
4 actions

Misc

Localization checks, crash reports with symbolication, performance profiling via Instruments and provisioning profile management.

  • Find missing translation keys
  • Consistency check
  • Crash Reports & Symbolication
  • Instruments (Beta)
  • Provisioning Profiles
9 actions

What makes it different.

Not just a wrapper around xcodebuild. Thoughtfully designed for real developer workflows.

The Problem

How Xcode normally builds

Xcode writes all build artifacts into a shared DerivedData folder under ~/Library/Developer/Xcode/DerivedData/. Compiled files, index data, logs and temporary build products from all projects land there simultaneously. When Xcode is indexing in the background, another build is running, or old artifacts remain from a previous project, silent conflicts occur: builds fail for unclear reasons, caches get reused incorrectly, errors can't be reproduced. The classic fix — "Clean Build Folder" — deletes everything and rebuilds from zero, but costs time and doesn't address the root cause.

How Xcode normally builds — shared DerivedData
The Solution

Own DerivedData — clean and isolated

xcodex builds into its own DerivedData folder — completely independent from Xcode. Both can run simultaneously without interfering. Every run starts in a fresh environment: no old artifacts, no side effects. If something breaks, you know immediately: it's the current state — not a cache from yesterday.

Own isolated DerivedData — xcodex solution
Branch Builds

Branch & Commit — build and compare

Check out any branch or commit, build locally and launch — without touching your development environment. Parallel builds let you compare different project states cleanly. No risk, no merge conflicts, no context loss.

Branch and commit builds

Up and running in minutes.

Four commands. No build tools, no package managers, no config files.

Clone the repository

git clone https://github.com/drapatzc/xcodex.git ~/Developer/xcodex

Set executable permission

chmod +x ~/Developer/xcodex/xcodex

Set up shell alias

echo 'alias xcodex="$HOME/Developer/xcodex/xcodex"' >> ~/.zshrc
source ~/.zshrc
echo 'alias xcodex="$HOME/Developer/xcodex/xcodex"' >> ~/.bash_profile
source ~/.bash_profile
alias xcodex="$HOME/Developer/xcodex/xcodex"
funcsave xcodex

Run from your project root

cd YourXcodeProject
xcodex

xcodex automatically detects .xcworkspace or .xcodeproj files in the current directory.

Update

cd ~/Developer/xcodex && git pull

Requirements

macOS 13 Ventura or later macOS-only tool
Xcode (full App Store install) ~30 GB, open once to install components
Swift 5.9+ Included with Xcode
Git For cloning and branch builds

Not just for iOS developers.

The CLI tool xcodex makes Apple development accessible to the whole team.

iOS Developers

Your daily workflow, streamlined. Build, test, clean — without interrupting your focus in the editor.

Android Developers

Familiar terminal interface. Check out the iOS codebase, build and test — no Xcode knowledge required.

QA & Testers

No TestFlight waiting. Build directly from source, test on any iOS version. Press A, configure once — done.

Designers & POs

See changes in context immediately, on different iOS versions. Present the current build — without developer assistance.

Free. Transparent. No strings attached.

No subscriptions, no feature gates, no hidden conditions.

Permitted

  • Private use
  • Commercial use
  • Team-wide deployment
  • Unlimited installations
  • No registration, no license key

Not Allowed

  • Selling or reselling the software
  • Distributing as standalone product
  • Bundling in paid products (without permission)
  • Reverse engineering

Disclaimer

This software is provided without any warranty. Use is at your own risk. The author is not liable for damages arising from its use.

The Developer

I build software for the Apple ecosystem — native iOS and macOS apps, developer tools and games. My focus is on products that are technically clean, practically useful and independently valuable.

Christian Drapatz
christiandrapatz.de →

Portfolio

Personal website, projects, contact and background on my development work.

christiandrapatz.de →

AI Apps

AI-powered macOS tools for iOS and macOS developers.

Games

Independent iOS games — developed and published in the Apple ecosystem.

Apps

Practical apps for iOS and macOS — clear concepts, standalone products.

Support its development.

If this tool saves you time every day and you'd like to support further development, a small PayPal donation is warmly welcome. Every contribution helps keep the project alive.

Support via PayPal

Voluntary — no effect on license or features.

BetterLocale completes your developer workflow

From crash analysis to localisation and App Store texts: the BetterLocale apps support you exactly where the real product work begins — after the build.

BetterLocale Workflow

There's more to discover.

How xcodex compares to Xcode and where it fits alongside other tools — all on one page.

xcodex vs Xcode

xcodex alongside Xcode

The right tool for each task. A detailed comparison — what xcodex covers and where Xcode takes the lead.

Learn more →
Other Tools

Compared to other tools

xcodebuild, fastlane, simctl — xcodex bundles the tasks you use every day into one clear terminal interface.

Learn more →