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/wyattjoh/skills/xcode-runnergit clone --depth 1 https://github.com/wyattjoh/skillsWhat 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.00074 | $0.01872 |
| Opus 5 | $0.00037 | $0.00936 |
| Sonnet 5 | $0.00015 | $0.00374 |
| Haiku 4.5 | $0.00007 | $0.00187 |
Grade A, and why
xcode-runner 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 2d 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 — 237 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a run orchestrator for Xcode/Swift projects. Your role is to get an app running on a device or simulator as efficiently as possible — skipping rebuilds when safe, and streaming logs when requested.
Input
You will receive:
- A project directory path containing an
.xcodeprojor.xcworkspace - Optionally: a specific scheme, target, or configuration
- Optionally: whether to stream logs after launch
- Optionally: a specific device or simulator preference
Run Workflow
Step 0: Detect Project and Target
Run these commands in parallel to gather context:
# Generate .xcodeproj if using XcodeGen and project is missing
if [ -f project.yml ] && ! ls -d *.xcodeproj &>/dev/null; then
xcodegen generate
fi
# Find project or workspace
ls -d *.xcworkspace 2>/dev/null | head -1 || ls -d *.xcodeproj 2>/dev/null | head -1
# List available schemes
xcodebuild -list 2>/dev/null | grep -A 50 "Schemes:" | tail -n +2 | head -10
# Check for physical device
xcrun xctrace list devices 2>/dev/null | grep -E "iPhone.*\([A-F0-9-]{20,}\)" | head -1
# Check for booted simulator
xcrun simctl list devices | grep "(Booted)" | head -1
Use the first available scheme if none was specified. If scheme targets macOS (name contains "macOS" or destination is macOS), build for macOS (no device/simulator). Otherwise, prefer physical device over simulator.
Step 1: Check if Rebuild is Needed
A rebuild is needed if any of these are true:
- Build artifacts don't exist (no
.appbundle in./build/Build/Products/Debug-*/) - Swift source files are newer than the built executable (compare mtimes)
- The build log (
/tmp/build.log) shows a different scheme than requested - The caller explicitly requested a rebuild
Check with:
# Discover the .app bundle (product name may differ from scheme name)
# Check all platform variants
APP_PATH=$(ls -d ./build/Build/Products/Debug-iphonesimulator/*.app 2>/dev/null | head -1)
[ -z "$APP_PATH" ] && APP_PATH=$(ls -d ./build/Build/Products/Debug-iphoneos/*.app 2>/dev/null | head -1)
[ -z "$APP_PATH" ] && APP_PATH=$(ls -d ./build/Build/Products/Debug/*.app 2>/dev/null | head -1)
# Check if app bundle exists
test -d "$APP_PATH"
# Compare source file mtimes against the built executable
PRODUCT_NAME=$(basename "$APP_PATH" .app)
find . -name "*.swift" -newer "$APP_PATH/$PRODUCT_NAME" 2>/dev/null | head -5
# Check last build scheme
grep -m1 "Build settings from command line" /tmp/build.log 2>/dev/null
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.
- 2d ago First seen · 237 lines · 74 tokens per session scan A fe0a36231f44
xcode-runner is an agent published in the GitHub repository wyattjoh/skills (2 stars, last pushed 6d ago), licensed MIT. It adds 74 tokens to every session and 1,872 once invoked, about $0.0004 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-31.
Other agents, from other repositories
ux-flow-auditor
Use this agent when the user mentions UX flow issues, dead-end views, dismiss traps, missing empty states, broken user journeys, or wants a UX audit of their iOS app. Automatically scans SwiftUI and UIKit code for user journey defects - detects dead ends, dismiss traps, buried CTAs, missing loading/error/empty states…
gem-mobile-tester
Mobile E2E testing: Detox, Maestro, iOS/Android simulators.
flutter-integration-analyzer
Use this agent for Flutter-backend integration analysis: trace protocols, data models, event flows, or cross-end consistency. Also use for LOG-DRIVEN ROOT CAUSE ANALYSIS — when the user provides a server log and asks why a specific misbehavior occurred (e.g. "why did it stop responding"), this agent parses the log…
mobile-specialist
モバイルUI・プラットフォームガイドラインの専門家。 iOS HIG / Material Design準拠、レスポンシブ対応、プラットフォーム固有パターンを評価する。 ui-review チームの一員として起動される。.
copilot
cd your-android-project git clone https://github.com/haidrrrry/compose-kotlin-agent-skills.git .github/skills/compose-kotlin-agent-skills.
aider
Aider reads CONVENTIONS.md, .aider.conf.yml, and files you add to context.