Xcodebuildmcp
w-winter/dot314
Build/test Xcode projects via the XcodeBuildMCP MCP server using a local CLI wrapper for pi (no MCP support).
Directs iOS build, test and clean operations through the execute_xcode_command MCP tool instead of raw xcodebuild in the shell, with parameter-level retries on failure.
$ npx skills add conorluddy/xclaude-plugin --skill xcode-workflows -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install conorluddy/xclaude-plugin xcode-workflows --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/conorluddy/xclaude-plugin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/xcode-workflows .claude/skills/xcode-workflows && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "xcode-workflows" agent skill from https://github.com/conorluddy/xclaude-plugin/tree/main/skills/xcode-workflows into .claude/skills/xcode-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xcode-workflows", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/conorluddy/xclaude-plugin/tree/main/skills/xcode-workflowsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add conorluddy/xclaude-plugin --skill xcode-workflows -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install conorluddy/xclaude-plugin xcode-workflows --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/conorluddy/xclaude-plugin.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/xcode-workflows .agents/skills/xcode-workflows && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "xcode-workflows" agent skill from https://github.com/conorluddy/xclaude-plugin/tree/main/skills/xcode-workflows into .agents/skills/xcode-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xcode-workflows", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add conorluddy/xclaude-plugin --skill xcode-workflows -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install conorluddy/xclaude-plugin xcode-workflows --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/conorluddy/xclaude-plugin.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/xcode-workflows .cursor/skills/xcode-workflows && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "xcode-workflows" agent skill from https://github.com/conorluddy/xclaude-plugin/tree/main/skills/xcode-workflows into .cursor/skills/xcode-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xcode-workflows", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/conorluddy/xclaude-plugin.git --path skills/xcode-workflows--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add conorluddy/xclaude-plugin --skill xcode-workflows -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install conorluddy/xclaude-plugin xcode-workflows --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/conorluddy/xclaude-plugin.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/xcode-workflows .gemini/skills/xcode-workflows && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "xcode-workflows" agent skill from https://github.com/conorluddy/xclaude-plugin/tree/main/skills/xcode-workflows into .gemini/skills/xcode-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xcode-workflows", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install conorluddy/xclaude-plugin xcode-workflowsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add conorluddy/xclaude-plugin --skill xcode-workflows -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/conorluddy/xclaude-plugin.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/xcode-workflows .github/skills/xcode-workflows && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "xcode-workflows" agent skill from https://github.com/conorluddy/xclaude-plugin/tree/main/skills/xcode-workflows into .github/skills/xcode-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xcode-workflows", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add conorluddy/xclaude-plugin --skill xcode-workflows -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install conorluddy/xclaude-plugin xcode-workflows --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/conorluddy/xclaude-plugin.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/xcode-workflows .opencode/skills/xcode-workflows && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "xcode-workflows" agent skill from https://github.com/conorluddy/xclaude-plugin/tree/main/skills/xcode-workflows into .opencode/skills/xcode-workflows/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xcode-workflows", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
xcode-workflowsDirects iOS build, test and clean operations through the execute_xcode_command MCP tool instead of raw xcodebuild in the shell, with parameter-level retries on failure.
The xclaude-plugin consolidates xcodebuild into one token-efficient MCP dispatcher, and the skill makes using it the first rule for anything about building or testing iOS projects. Operations include listing schemes, building, testing, cleaning and reading the Xcode version. If the tool fails, the agent reads the error and adjusts the parameters rather than falling back to bash xcodebuild or xcrun.
A table contrasts the wrong shell command with the right tool operation for each task, and a second list says bash remains fine for file operations, text inspection, git, environment checks and project exploration. Stated benefits are structured error handling, lower token use, plugin integration and consistent responses. The description adds scheme configuration, interpreting xcodebuild output and troubleshooting common build errors.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 6de4b2c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
xcodebuildgitxcrunFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Xcode Build Workflows loads about 3k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 920 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from conorluddy/xclaude-plugin at commit 6de4b2c, republished under its MIT licence (© conorluddy). 920 words, ~3,037 tokens.
.claude/skills/xcode-workflows/SKILL.md (or your agent's skills folder).Use the execute_xcode_command MCP tool for all iOS build operations
The xclaude-plugin provides the execute_xcode_command MCP tool which consolidates all xcodebuild operations into a single, token-efficient dispatcher.
This is the most important rule: When working with iOS builds, you MUST use the execute_xcode_command MCP tool.
execute_xcode_command for all build/test/clean operationsxcodebuild commandsxcodebuild directly in bashxcrun xcodebuild in a terminalWhy? The MCP tool provides:
If execute_xcode_command fails, the issue is with parameters or the project - not that you should use bash.
| Task | ❌ WRONG (Bash) | ✅ RIGHT (MCP Tool) |
|---|---|---|
| List schemes | xcodebuild -list | execute_xcode_command op: "list" |
| Build app | xcodebuild -scheme... | execute_xcode_command op: "build" |
| Run tests | xcodebuild -scheme... test | execute_xcode_command op: "test" |
| Clean build | xcodebuild clean | execute_xcode_command op: "clean" |
| Get Xcode info | xcodebuild -version | execute_xcode_command op: "version" |
mkdir, cp, rm, ls, etc.grep, find, cat, etc.git status, git log, etc.which, xcode-select --version, etc.find . -name "*.swift", etc.| Task | MCP Tool | Operation | Key Parameters |
|---|---|---|---|
| Build for simulator | execute_xcode_command | build | scheme, configuration:Debug |
| Build for device | execute_xcode_command | build | scheme, configuration:Release, destination |
| Run tests | execute_xcode_command | test | scheme, destination |
| Clean build | execute_xcode_command | clean | scheme |
| List schemes | execute_xcode_command | list | - |
| Get Xcode info | execute_xcode_command | version | - |
Step 1: Discover Schemes - Use execute_xcode_command with operation: "list"
Invoke the execute_xcode_command MCP tool:
{
"operation": "list",
"project_path": "/path/to/Project.xcodeproj"
}Note: project_path is optional - auto-detected from current directory.
Returns:
{
"schemes": ["MyApp", "MyAppTests", "MyAppUITests"],
"targets": ["MyApp", "MyAppKit", "MyAppTests"]
}Step 2: Build - Use execute_xcode_command with operation: "build"
Invoke the execute_xcode_command MCP tool with build parameters:
{
"operation": "build",
"scheme": "MyApp",
"configuration": "Debug",
"destination": "platform=iOS Simulator,name=iPhone 15"
}Common Destinations:
"platform=iOS Simulator,name=iPhone 15,OS=18.0""platform=iOS Simulator,name=iPhone 15" (will auto-detect latest OS)"platform=iOS,id=<device-udid>""platform=iOS Simulator,name=Any iOS Simulator Device""platform=macOS"Note: The destination parameter now supports auto-resolution! If you omit the OS version, the tool will automatically query available simulators and select the latest OS version for the specified device name. For explicit control, include the OS version in your destination string.
Unit Tests:
{
"operation": "test",
"scheme": "MyApp",
"destination": "platform=iOS Simulator,name=iPhone 15"
}Specific Test Plan:
{
"operation": "test",
"scheme": "MyApp",
"destination": "platform=iOS Simulator,name=iPhone 15",
"options": {
"test_plan": "UnitTests"
}
}Run Specific Tests:
{
"operation": "test",
"scheme": "MyApp",
"destination": "platform=iOS Simulator,name=iPhone 15",
"options": {
"only_testing": [
"MyAppTests/LoginTests/testSuccessfulLogin",
"MyAppTests/LoginTests/testInvalidCredentials"
]
}
}Skip Specific Tests:
{
"operation": "test",
"scheme": "MyApp",
"destination": "platform=iOS Simulator,name=iPhone 15",
"options": {
"skip_testing": ["MyAppUITests"]
}
}When to Clean:
{
"operation": "clean",
"scheme": "MyApp"
}Clean + Build Pattern:
{
"operation": "build",
"scheme": "MyApp",
"configuration": "Debug",
"options": {
"clean_before_build": true
}
}Debug (Default):
Release:
{
"operation": "build",
"scheme": "MyApp",
"configuration": "Release"
}{
"operation": "build",
"scheme": "MyApp",
"options": {
"clean_before_build": true,
"parallel": true,
"sdk": "iphoneos17.0",
"arch": "arm64",
"quiet": false
}
}Options Explained:
{
"success": true,
"summary": "Build succeeded",
"warnings": 3,
"build_time": "45.2s",
"scheme": "MyApp",
"configuration": "Debug"
}{
"success": false,
"error": "Build failed",
"errors": 2,
"warnings": 5,
"failure_reason": "Compilation errors in ViewController.swift"
}Large build logs use progressive disclosure:
{
"success": true,
"summary": "Build succeeded with 15 warnings",
"cache_id": "build-abc123",
"quick_stats": {
"warnings": 15,
"build_time": "62.3s"
},
"next_steps": [
"Use cache_id to get full build log if needed",
"Review warnings for potential issues"
]
}Cause: Scheme doesn't exist or isn't shared
Solution:
list operation to see available schemesCause: Missing or invalid signing certificate
Solution:
{
"operation": "build",
"scheme": "MyApp",
"options": {
"code_sign_identity": "Apple Development",
"development_team": "TEAM_ID_HERE"
}
}Cause: Requesting unavailable SDK version
Solution:
version operation to see available SDKssdk option or remove to use latestCause: Invalid destination specifier
Solution:
execute_simulator_command with operation "list" to see available devices1. list → Get test scheme
2. clean → Ensure fresh state
3. test → Run all tests
4. Analyze results → Check for failuresRun tests multiple times:
{
"operation": "test",
"scheme": "MyApp",
"options": {
"test_iterations": 5,
"retry_on_failure": true
}
}Note: Test iteration support depends on Xcode version.
Tests return:
{
"success": false,
"tests_run": 45,
"tests_passed": 43,
"tests_failed": 2,
"failures": [
{
"test": "MyAppTests.LoginTests.testInvalidPassword",
"message": "XCTAssertEqual failed: (\"error\") is not equal to (\"invalid\")"
}
]
}xcodebuild operations auto-detect project files:
.xcworkspace.xcodeprojExplicit Path:
{
"operation": "build",
"project_path": "/path/to/specific/Project.xcodeproj",
"scheme": "MyApp"
}{
"options": {
"parallel": true
}
}Don't clean unless necessary - incremental builds are much faster.
For CI/automated builds:
{
"options": {
"quiet": true
}
}Default behavior - xcodebuild uses DerivedData for caching.
1. version → Verify Xcode installation
2. list → Validate scheme exists
3. clean → Ensure fresh build
4. build → Compile project
5. test → Run test suite
6. Analyze results → Fail pipeline if tests failBuild produces:
.app bundle in DerivedData.xcresult test results bundleQuery build settings:
{
"operation": "list",
"project_path": "/path/to/Project.xcodeproj"
}Returns scheme/target info. For detailed build settings, use Resource:
xc://reference/build-settings
Shared Schemes:
User Schemes:
Best Practice: Share schemes used for CI/CD.
This Skill works with execute_xcode_command tool:
execute_xcode_command toolxc://operations/xcode: Complete xcodebuild operations referencexc://reference/build-settings: Build settings dictionaryxc://reference/error-codes: Common error codes and solutionsTip: Use list to discover, build to compile, test to validate. Clean only when needed.
© conorluddy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/xcode-workflows of conorluddy/xclaude-plugin.
Open the folder on GitHubat commit 6de4b2c
Xcode Build Workflows next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Xcode Build Workflows this skillconorluddy/xclaude-plugin | 183 | — | ~3k | Automated safety check: Pass | MIT | |
| Xcodebuildmcpw-winter/dot314 | 139 | — | ~196 | Automated safety check: Pass | MIT | |
| Orca iOS Simulator Controlstablyai/orca | 87k | 1 repos | ~584 | Automated safety check: Pass | Apache-2.0 | |
| Apple Crash Log .NET Symbolicationdotnet/skills | 5.6k | 1 repos | ~2.4k | Automated safety check: Pass | MIT | |
| Update Swiftui APIsAvdLee/SwiftUI-Agent-Skill | 3.7k | — | ~1.2k | Automated safety check: Pass | MIT | |
| iOS Simulator Skillconorluddy/ios-simulator-skill | 1.3k | — | ~5.7k | Automated safety check: Pass | MIT |
w-winter/dot314
Build/test Xcode projects via the XcodeBuildMCP MCP server using a local CLI wrapper for pi (no MCP support).
stablyai/orca
iOS Simulator control from inside Orca, with the live device view in Orca's emulator pane. Use when driving a booted Apple Simulator on macOS: taps, gestures…
dotnet/skills
Resolves .NET runtime frames in Apple .ips crash logs to function names, source files and line numbers using dSYM symbols, atos and the Microsoft symbol server.
AvdLee/SwiftUI-Agent-Skill
Scan Apple's SwiftUI documentation for deprecated APIs and update the SwiftUI Expert Skill with modern replacements.
conorluddy/ios-simulator-skill
29 production-ready scripts for iOS app testing, building, and automation.
ipedro/Inspector
A skill your agent uses when an agent needs to inspect a live iOS app through the Inspector MCP bridge, register or troubleshoot InspectorMCPServer for a consumer Xcode project, or query, resolve…
conorluddy/xclaude-plugin
Guides WCAG 2.1 and VoiceOver accessibility testing for iOS apps, working from the accessibility tree and not from screenshots.
conorluddy/xclaude-plugin
Walks through retrieving, symbolicating and diagnosing iOS crash logs, turning a cryptic stack trace into the function names that actually failed.
conorluddy/xclaude-plugin
Manages iOS Simulator devices and apps through the execute_simulator_command MCP tool instead of raw simctl: boot, create and delete devices, install and launch apps, screenshots and diagnostics.
conorluddy/xclaude-plugin
Teaches how xc-plugin saves tokens with progressive disclosure, cached responses and consistent configuration, so large device lists and build logs arrive as summaries first.
conorluddy/xclaude-plugin
Accessibility-first UI automation using IDB. An agent skill from conorluddy/xclaude-plugin.
conorluddy/xclaude-plugin
Instruments integration and performance analysis workflows for iOS apps.
Works with
Categories
Directs iOS build, test and clean operations through the execute_xcode_command MCP tool instead of raw xcodebuild in the shell, with parameter-level retries on failure. The xclaude-plugin consolidates xcodebuild into one token-efficient MCP dispatcher, and the skill makes using it the first rule for anything about building or testing iOS projects. Operations include listing schemes, building, testing, cleaning and reading the Xcode version.
Xcode Build Workflows fits situations like: building an iOS project and diagnosing build failures; running an Xcode test suite and reading the results; listing schemes or cleaning a build.
Run `npx skills add conorluddy/xclaude-plugin --skill xcode-workflows -a claude-code`. Or copy the skill folder (skills/xcode-workflows in conorluddy/xclaude-plugin) into .claude/skills/xcode-workflows in your project. Claude Code loads it when a task matches its description.
Run `npx skills add conorluddy/xclaude-plugin --skill xcode-workflows -a codex`. Or copy the skill folder (skills/xcode-workflows in conorluddy/xclaude-plugin) into .agents/skills/xcode-workflows in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add conorluddy/xclaude-plugin --skill xcode-workflows -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/xcode-workflows, .gemini/skills/xcode-workflows, .github/skills/xcode-workflows and .opencode/skills/xcode-workflows in your project.
Going by SKILL.md and its folder, Xcode Build Workflows needs the command-line tools its instructions call (xcodebuild, git and xcrun). Our summary lists: The xclaude-plugin with its execute_xcode_command MCP tool; Xcode on a Mac.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Xcode Build Workflows is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Xcode Build Workflows: Xcodebuildmcp (w-winter/dot314, 139 stars), Orca iOS Simulator Control (stablyai/orca, 87k stars), Apple Crash Log .NET Symbolication (dotnet/skills, 5.6k stars) and Update Swiftui APIs (AvdLee/SwiftUI-Agent-Skill, 3.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
conorluddy (a GitHub user) maintains it in conorluddy/xclaude-plugin, which has 183 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on September 12, 2026.
Source: conorluddy/xclaude-plugin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.