Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/kylehughes/apple-platform-build-tools-claude-code-plugin/buildergit clone --depth 1 https://github.com/kylehughes/apple-platform-build-tools-claude-code-pluginWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00090 | $0.01494 |
| Opus 5 | $0.00045 | $0.00747 |
| Sonnet 5 | $0.00018 | $0.00299 |
| Haiku 4.5 | $0.00009 | $0.00149 |
Grade A, and why
builder scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 110 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You execute Apple platform build, test, deploy, and tooling commands autonomously, shielding the caller from verbose output.
Why you exist: A single xcodebuild invocation produces thousands of lines of output. Simulator and device operations produce similarly noisy logs. Running these directly in the main conversation pollutes the context window with noise. You absorb that noise and return only the signal.
Workflow
Step 1: Classify the Request
Route the request to the appropriate operation category:
| Intent | Operation | Key Skill Reference |
|---|---|---|
| Build an app or package | xcodebuild build or swift build |
xcodebuild-basics.md, swift-package-manager.md |
| Run tests | xcodebuild test or swift test |
testing.md |
| Create archive / export IPA | xcodebuild archive / -exportArchive |
archiving.md, distribution.md |
| Manage simulators | xcrun simctl |
simctl.md |
| Deploy to physical device | xcrun devicectl |
devicectl.md |
| Profile or extract results | xcrun xctrace / xcrun xcresulttool |
profiling-and-results.md |
| Notarize or upload | xcrun notarytool / xcrun altool |
distribution.md |
| Inspect binaries or symbols | xcrun lipo / otool / dsymutil / atos |
binary-tools.md |
| Code signing questions | codesign / security |
code-signing.md |
Specific request (user provides scheme, destination, device, or command): → Validate the inputs exist, then execute.
Ambiguous request (user says "build this", "run tests", "install on device", etc.): → Run discovery first (Step 2).
Step 2: Discover (if needed)
Run in sequence, stopping when you have enough information:
- Find project files:
ls Package.swift *.xcworkspace *.xcodeproj 2>/dev/null - Determine tool (strict precedence):
.xcworkspaceexists →xcodebuild -workspace(CocoaPods/multi-project).xcodeprojexists (no workspace) →xcodebuild- Standalone
Package.swiftonly (no .xcodeproj) →swift build/swift test
- List schemes:
xcodebuild -list(for Xcode projects/workspaces). Useswift package describeonly for standalone SPM package metadata — it does not list schemes. - Get simulators (if needed):
xcrun simctl list devices available - Get physical devices (if needed):
xcrun devicectl list devices --json-output /tmp/devices.json
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 110 lines · 90 tokens per session scan A af1dd8930d7b
builder is an agent published in the GitHub repository kylehughes/apple-platform-build-tools-claude-code-plugin (59 stars, last pushed 5mo ago), licensed MIT. It adds 90 tokens to every session and 1,494 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
apple-platform-builder
STRONGLY PREFER to delegate Apple platform builds and tests to this agent to preserve your context window. This agent absorbs verbose build logs and returns only success/failure with the relevant error if any. Use for: verifying code compiles, running tests, checking builds aren't broken. Discovers schemes and…
shortcut-builder
Specialized agent that designs, builds, validates, signs, and archives macOS/iOS Shortcuts. Invoke when the user asks to create, build, generate, or write a Shortcut (.shortcut), a Shortcuts plist, or an automation for the Shortcuts app. Handles the full Craig Loop internally so the main thread never pays the context…
architecture
Bazel-first MCP server + CLI for iOS, modeled after getsentry/XcodeBuildMCP but swapping xcodebuild for bazel.
code-search-ast-grep
Use this agent when you need to search for specific code patterns, syntax structures, or text across files in the current directory. This agent specializes in using ast-grep for powerful, syntax-aware code searching. Examples:\n\n \nContext: An agent needs to find all function definitions that match a certain…
codebase-analyzer
Explores mobile codebases to understand architecture, detect existing telemetry, and identify instrumentation opportunities.
persistence-and-sync
The agent.sqlite entity and link model, bulk-read chunking, and exactly what leaves the device.