Getting started
sochi is a macOS CLI that builds, runs, and edits Xcode projects without opening Xcode. It calls xcodebuild, devicectl / simctl, and reads templates, capabilities, and build specs from the Xcode selected by xcode-select.
Requirements
Section titled “Requirements”- macOS
- Xcode 16 or later (
xcode-select -pmust point at it) - For a physical device: paired + trusted, Developer Mode on, Apple ID signed into Xcode → Settings → Accounts
sochi does not support SPM-only package directories. You need an .xcodeproj or .xcworkspace.
Install and check
Section titled “Install and check”curl -fsSL https://raw.githubusercontent.com/Chandram-Dutta/sochi/main/install.sh | bashsochi doctordoctor reports xcodebuild, Swift, devices, teams, simulators, and the cache path. Fix anything it marks failed before continuing. Other install methods: Install.
Minimal loop
Section titled “Minimal loop”New project:
sochi new Weather --org com.examplecd Weathersochi runExisting project (cwd contains .xcodeproj / .xcworkspace, or pass a path):
sochi runsochi run --simrun resolves scheme and destination, builds, installs if needed, launches with app stdout attached. Stop with ctrl-c.
Common next commands
Section titled “Common next commands”sochi add capability push-notificationssochi add target widget-extension Forecastsochi migrate # group-based → synchronized folders (Xcode 16+)sochi --helpProject edits print a diff, write atomically, verify, and roll back on failure. Details: Usage, Editing.