XcodeBazelMCP: Skill for Claude Code

.agents/skills/simulator-workflow/SKILL.md

simulator-workflow is a skill for Claude Code, Codex from DebugSwift/XcodeBazelMCP. It costs 40 tokens per session (699 once invoked), scanned A, original, MIT.

A workflow for building, installing, and launching iOS apps on simulators. An iOS simulator is a computer-based device environment for running an app without a physical iPhone.

In plain words
What is it for?
Use it to build Bazel iOS targets, locate the resulting app bundle, resolve or boot a simulator, install the app, read its bundle ID, and launch it.
Why use it?
It standardizes the path from a Bazel build to finding the app, choosing a simulator, installing the app, and launching it.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: installed under .agents/ (shared by several agents).

This is DebugSwift/XcodeBazelMCP's own configuration. It tells Claude Code and Codex how to work on XcodeBazelMCP itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything XcodeBazelMCP configures →

Reuse

Borrowing it

Nothing to install: this file belongs to DebugSwift/XcodeBazelMCP. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/DebugSwift/XcodeBazelMCP/main/.agents/skills/simulator-workflow/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/DebugSwift/XcodeBazelMCP

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for simulator-workflow

README.md
[![agentmods](https://agentmods.dev/badge/skills/debugswift/xcodebazelmcp/simulator-workflow/github.svg)](https://agentmods.dev/skills/debugswift/xcodebazelmcp/simulator-workflow)
Your own site
<a href="https://agentmods.dev/skills/debugswift/xcodebazelmcp/simulator-workflow"><img src="https://agentmods.dev/badge/skills/debugswift/xcodebazelmcp/simulator-workflow/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for simulator-workflow

Your own site · 80×15
<a href="https://agentmods.dev/skills/debugswift/xcodebazelmcp/simulator-workflow"><img src="https://agentmods.dev/badge/skills/debugswift/xcodebazelmcp/simulator-workflow.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 40 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 699 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What 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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00040 $0.00699
Opus 5.5 $0.00016 $0.00280
Sonnet 5.5 $0.00008 $0.00140
Haiku 4.5 $0.00004 $0.00070

Measured 2mo ago against content hash 618cbaadf51c, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

simulator-workflow scanned grade A with 1 finding 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 2mo 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.

Runs shell commandslowCapability

Expected in a hook, worth knowing in a rule or an instructions file.

6. **Read bundle ID** — `plutil -convert json -o -` on `Info.plist` (sync `execSync`)
.agents/skills/simulator-workflow/SKILL.md · 60 lines

How it starts

The opening of the file, as written. The whole thing — 60 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Simulator Workflow

Build + Run + Launch Chain

The bazel_ios_build_and_run tool chains these steps (each failure short-circuits):

  1. Build — bazel build <target>
  2. Find app — search bazel-bin/ using target label's package path
  3. Resolve simulator — priority: explicit UDID > name match > first booted > first available iPhone > first available device
  4. Boot — lazy, only simctl boot if state != Booted
  5. Install — simctl install <udid> <app_path>
  6. Read bundle ID — plutil -convert json -o - on Info.plist (sync execSync)
  7. Launch — simctl launch <udid> <bundleId>

App Bundle Discovery

  • After bazel build, search bazel-bin/ using the target label's package path.
  • Target //:Foo → bazel-bin/Foo.app, //Apps/Bar:Bar → bazel-bin/Apps/Bar/Bar.app.
  • rules_apple places bundles inside <target>_archive-root/Payload/ — findAppBundle searches recursively.

Simulator Resolution

resolveSimulator returns { device: SimulatorDevice; warning?: string }:

  • warning is set when the resolved simulator is not the explicitly requested one (fallback).
  • resolveSimulatorFromArgs in helpers.ts is the convenience wrapper — returns { sim, warning }.
  • prependWarning(message, warning) prepends the warning to tool output.

Launch Environment Variables

Env vars are passed via SIMCTL_CHILD_* prefix convention — simctl forwards them to the launched process.

For Cursor DEBUG MODE (NDJSON hypothesis logs), use the swift-agent-debug-log skill and bazel_ios_agent_debug_* tools:

  • AGENT_DEBUG_LOG_PATH / AGENT_DEBUG_SESSION_ID via launchEnv on build_and_run or agent_debug_repro
  • Simulator fallback: Documents/agent-debug.ndjson + bazel_ios_agent_debug_log_pull
  • Do not rely on the sim app writing directly to .cursor/debug-*.log on the host

Platform CPU Flags

Platform Flag
iOS simulator --ios_multi_cpus=sim_arm64
iOS device --ios_multi_cpus=arm64
macOS (none — host arch)
tvOS --tvos_cpus=sim_arm64
watchOS --watchos_cpus=arm64
visionOS --visionos_cpus=sim_arm64

Read the full file on GitHub · 60 lines

Changes

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.

  1. 2mo ago First seen · 60 lines · 40 tokens per session scan A 618cbaadf51c

Subscribe to this mod's changes

simulator-workflow is a skill published in the GitHub repository DebugSwift/XcodeBazelMCP (8 stars, last pushed 3mo ago), licensed MIT. It adds 40 tokens to every session and 699 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

mobiloop-mobile-qa

Test mobile apps with MobiLoop MCP, collect device evidence, and fix and retest confirmed failures within the user's scope. Use for Flutter, React Native, Android, or iOS QA on an emulator, simulator, or device, including relevant mobile security checks.

enessubass/mobiloop-mcp · 60 tokens

xcforge

Complete reference for xcforge — 104 MCP tools (114 with the diagnose group) + 113 CLI commands for iOS development. Covers build, test, simulator, physical devices, SPM, UI automation, screenshots, logs, git, visual regression, accessibility, localization, session profiles, diagnosis workflows, plan execution, LLDB…

justinthevoid/xcforge · 140 tokens

argent-test-ui-flow

Autonomously test an app UI (iOS or Android) by running interact-screenshot-verify loops using argent MCP tools. Use when testing UI flows, verifying login works, testing navigation, running UI test scenarios, manual QA steps, visible UI changes, or visual behavior.

software-mansion/argent · 61 tokens

mobile-automation

Control Android and iOS devices, emulators and simulators — launch apps, tap, swipe, type, take screenshots, read the accessibility tree. Use when a task involves a mobile device or app, mobile UI testing, or reproducing a bug on a phone.

mobile-next/mobile-mcp · 58 tokens

baguette

Drive and inspect iOS simulators with the baguette CLI: taps, swipes, buttons, typing, screenshots, the accessibility tree, logs, and the conditions an app runs under (location, network, appearance, push, UserDefaults), without opening Xcode. Use when an agent must act on or verify a running simulator — a UI flow…

tddworks/baguette · 116 tokens

argent-qa-e2e

Write repeatable QA regression e2e tests from test cases, tickets, or acceptance criteria. Use when the user asks to write, automate, or generate an e2e test or preserve an automated regression scenario, with deterministic setup, stable targets, executable structural or visual evidence, and two consecutive full…

software-mansion/argent · 137 tokens