Simple, reliable bash wrappers for Xcode builds and iOS/visionOS app debugging with Claude Code.
A lightweight alternative to heavy MCP serversβjust bash scripts that wrap Apple's tools and capture output to files.
- β Dead Simple: 3 bash scripts, ~100 lines total
- β
Reliable: Wraps Apple's battle-tested
xcodebuildandsimctl - β Token-Efficient: File-based outputs, grep what you need
- β
No Dependencies: Uses standard macOS tools (
xcrun,simctl) - β Works with Claude Code: Perfect for AI-assisted development
- β Portable: Copy installer to any Xcode project
- β Timestamped Outputs: Each build and log capture gets its own file
| Script | Purpose |
|---|---|
capture-logs |
Capture app console output to file |
stop-logs |
Stop background log capture |
xcodebuild |
Wrap xcodebuild, capture output to file |
INSTALL-XCODE-SCRIPTS.md- Installation guideINSTALLER-USAGE.md- Advanced usage patterns.claude/building-with-xcode.md- Complete reference (installed by installer)
bash install-xcode-scripts.sh./claude/scripts/xcodebuild \
-workspace MyApp.xcworkspace \
-scheme MyApp \
build \
-destination 'generic/platform=visionOS Simulator'# Start capture
./claude/scripts/capture-logs com.yourapp.vision
# Launch your app in Xcode (Cmd+R)
# Do your testing...
# Stop capture
./claude/scripts/stop-logs
# Search results
grep ERROR ./build/logs/logs-*.txtgrep -i error ./build/xcodebuild/build-*.txt
grep -i crash ./build/logs/logs-*.txtThis project replaces heavyweight MCP servers with focused, reliable bash wrappers:
- File-based: Outputs saved to timestamped files, not in-memory responses
- Searchable: Use grep/head/tail to find what you need
- Simple: No TypeScript, no protocols, no complexity
- Token-Efficient: Only load the data you need
- Stable: Built on Apple's tools, no maintenance required
| Metric | XcodeBuildMCP | xcode-cli-tools |
|---|---|---|
| Setup | 30+ minutes | 30 seconds |
| Tools | 84+ complex tools | 3 bash scripts |
| Reliability | β Often fails | β Battle-tested tools |
| Token Usage | πΈ Large responses | π° File-based grep |
| Dependencies | Node.js, TypeScript | Standard macOS |
| Maintenance | π§ Requires debugging | π No updates needed |
| Learning Curve | π» Steep | ποΈ Minimal |
See INSTALL-XCODE-SCRIPTS.md for:
- Installation instructions
- What gets installed
- Quick start examples
- Troubleshooting
See INSTALLER-USAGE.md for:
- Advanced usage patterns
- Team distribution
- CI/CD integration
- FAQ
After installation, read the complete guide:
cat ./.claude/building-with-xcode.md./claude/scripts/xcodebuild \
-workspace MyApp.xcworkspace \
-scheme MyApp \
build \
-destination 'generic/platform=visionOS Simulator'./claude/scripts/xcodebuild \
-workspace MyApp.xcworkspace \
-scheme MyApp \
build \
-destination generic/platform=visionOS./claude/scripts/xcodebuild \
-workspace MyApp.xcworkspace \
-scheme MyApp \
test \
-destination 'generic/platform=visionOS Simulator'# Capture logs from your app's subsystem
./claude/scripts/capture-logs com.yourcompany.myapp
# Capture from a specific subsystem
./claude/scripts/capture-logs com.yourcompany.myapp.CoreData
# Capture from a specific simulator
./claude/scripts/capture-logs com.yourapp booted# Find all errors
grep -i error ./build/xcodebuild/build-*.txt
# Find warnings
grep -i warning ./build/xcodebuild/build-*.txt
# Show context (3 lines before/after)
grep -C 3 "error:" ./build/xcodebuild/build-*.txt
# Count occurrences
grep -c "ViewController" ./build/xcodebuild/build-*.txt# Find crashes
grep -i crash ./build/logs/logs-*.txt
# Find specific class logs
grep "MyViewController" ./build/logs/logs-*.txt
# Find with context
grep -C 5 "ERROR" ./build/logs/logs-*.txt
# Real-time search multiple log files
tail -f ./build/logs/logs-*.txt | grep MyPatternxcode-cli-tools/
βββ install-xcode-scripts.sh β Run this
βββ INSTALL-XCODE-SCRIPTS.md β Read this first
βββ INSTALLER-USAGE.md β Advanced usage
βββ README.md β You are here
β
After running installer:
βββ .claude/
β βββ scripts/
β β βββ capture-logs
β β βββ stop-logs
β β βββ xcodebuild
β βββ building-with-xcode.md
β
βββ build/
βββ logs/ β App console logs
βββ xcodebuild/ β Build outputs
These scripts are optimized for Claude Code integration:
User: "Build the visionOS app"
β
Claude runs: ./claude/scripts/xcodebuild -workspace MyApp.xcworkspace -scheme MyApp build
β
Output saved to: ./build/xcodebuild/build-20251021-143022.txt
β
User: "Find errors"
β
Claude runs: grep -i error ./build/xcodebuild/build-*.txt
β
Claude shows only relevant errors (token efficient!)
- iOS (Simulator & Device)
- iPadOS (Simulator & Device)
- visionOS (Simulator & Device)
- watchOS (Simulator & Device)
- tvOS (Simulator & Device)
- macOS (native apps)
- macOS 11+
- Xcode 13+
- Standard macOS tools:
xcrun,simctl(included with Xcode)
Verify they're executable:
ls -la ./.claude/scripts/
# Should show -rwxr-xr-x for each scriptIf not:
chmod +x ./.claude/scripts/*Check available simulators:
xcrun simctl listUse correct simulator ID or "booted":
./claude/scripts/capture-logs com.yourapp.vision bootedVerify files exist:
ls -la ./build/logs/ ./build/xcodebuild/Check the most recent file:
ls -t ./build/logs/logs-*.txt | head -1This is a minimal, focused project. Suggested improvements:
- Add platform support - watchOS, tvOS, macOS
- Create workflow scripts - Combine build + test + deploy
- Add CI/CD examples - GitHub Actions, GitLab CI
- Improve error messages - Better diagnostics
- Add performance tracking - Build time analysis
MIT - Use freely in any project
Igor Makarov's approach to lightweight Xcode automation: https://gist.github.com/igor-makarov/e46c7827493016765d6431b6bd1d2394
This implementation adds:
- visionOS support
- Self-contained installer
- Comprehensive documentation
- Claude Code integration
- Easy team distribution
For issues, questions, or suggestions:
- Check INSTALLER-USAGE.md FAQ
- Verify simulator is running:
xcrun simctl list - Test manually:
xcrun simctl spawn booted log stream --predicate "subsystem == 'com.example'" - Check
./.claude/building-with-xcode.mdtroubleshooting section
# Install
bash install-xcode-scripts.sh
# Build
./claude/scripts/xcodebuild -workspace X.xcworkspace -scheme Y build
# Capture logs
./claude/scripts/capture-logs com.yourapp
./claude/scripts/stop-logs
# Search
grep -i error ./build/xcodebuild/build-*.txt
grep -i crash ./build/logs/logs-*.txtBuilt for reliable, token-efficient Xcode development with AI assistants.