By pzep1
Build, compile Swift code for, and manage iOS/macOS apps natively with xcodebuild and xcrun simctl CLI tools. Handle simulator lifecycle, run unit/UI tests via XCUITest, capture logs/screenshots, and automate interactions in your CI/CD or local workflows.
An agent plugin that teaches your agent to build and manage iOS/macOS projects using native Xcode CLI tools (xcodebuild, xcrun simctl) instead of MCP servers.
npx skills add pzep1/xcode-build-skill
This plugin provides agents with comprehensive guidance for:
xcodebuildxcrun simctl (boot, install, launch, logs)Instead of relying on external MCP servers like XcodeBuildMCP, this plugin teaches Claude to use Apple's native CLI tools directly.
| Aspect | MCP Approach | This Plugin |
|---|---|---|
| Dependencies | External MCP server | None (native tools) |
| Flexibility | Limited to MCP tools | Full CLI capabilities |
| UI Automation | Coordinate-based | Semantic element targeting |
| Learning | Abstracts away details | Teaches actual commands |
Once installed, the skill auto-activates when you ask Claude about:
Example prompts:
xcode-build-skill/
├── .claude-plugin/
│ ├── plugin.json # Plugin manifest
│ └── marketplace.json # Marketplace manifest
├── skills/
│ └── xcode-build/
│ ├── SKILL.md # Main skill definition
│ ├── CLI_REFERENCE.md # xcodebuild + simctl reference
│ └── XCUITEST_GUIDE.md # UI automation guide
├── README.md
└── LICENSE
# Get simulator UUID
UDID=$(xcrun simctl list devices --json | jq -r '.devices | .[].[] | select(.name=="iPhone 16 Pro") | .udid' | head -1)
# Build
xcodebuild -workspace App.xcworkspace -scheme App \
-destination "platform=iOS Simulator,id=$UDID" build
xcrun simctl list devices # List simulators
xcrun simctl boot $UDID # Boot simulator
xcrun simctl install $UDID App.app # Install app
xcrun simctl launch $UDID com.id # Launch app
xcrun simctl io $UDID screenshot /tmp/screenshot.png
let app = XCUIApplication()
app.launch()
app.textFields["email"].tap()
app.textFields["email"].typeText("[email protected]")
app.buttons["Login"].tap()
XCTAssertTrue(app.staticTexts["Welcome"].exists)
jq (optional, for parsing JSON output)MIT License - see LICENSE
Contributions welcome! Please feel free to submit issues and pull requests.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Runtime debugging for Claude Code via instrumented fetch calls and a bundled local debug server.
npx claudepluginhub pzep1/xcode-build-skill --plugin xcode-build-skillModular iOS development automation suite. 8 workflow-specific MCP servers (600-3500 tokens) with 23 tools across Xcode, Simulator, and IDB. Enable only what you need!
Swift Testing, XCTest, and XCUITest skill for writing correct, modern iOS/macOS tests
Agent skills for building, debugging, profiling, testing, refactoring, and shipping Swift apps across Apple platforms.
Drive iOS simulators programmatically via the baguette CLI — taps, swipes, multi-finger gestures, hardware buttons, keyboard, and frame capture without opening Xcode.
AI-powered visual testing and accessibility setup for iOS/SwiftUI apps. Build, launch in Simulator, test with computer use, detect crashes, analyze memory leaks, and add accessibility identifiers.
Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current.