Build a Bazel-based iOS / macOS / Apple app on Limrun's remote build execution (RBE) instead of a local Mac, and install it on a remote iOS simulator. Use when the project is a Bazel workspace (MODULE.bazel / WORKSPACE) building rules_apple / rules_swift targets and the user wants to `bazel build` it or run it on a simulator, or when a `--config=limrun` build or install misbehaves. To then tap, type, screenshot, or otherwise interact with the running app, use limrun-ios-simulator. For non-Bazel
limrun-xcode-bazel builds Bazel-based Apple projects (iOS/macOS targets using rules_apple / rules_swift) on Limrun's remote build execution (RBE) fleet instead of a local Mac. Running `lim xcode rbe` from the Bazel workspace root brings up a remote RBE stack, tunnels it to a local port, and writes a `.limrun/` config so that `bazelisk build --config=limrun` executes Apple build actions remotely. As with the sibling limrun-xcode skill, it instructs the agent never to fall back to local Xcode or build tools, enabling Mac-free Bazel builds from any OS.
The skill documents the end-to-end flow: authenticating with `lim login` or `LIM_API_KEY`, letting the CLI generate the exact build command, appending custom flags via `user.limrun.bazelrc`, attaching a remote simulator for auto-install/relaunch, and publishing builds as Limrun assets with `--auto-upload` or a one-shot `rbe upload`. It includes a detailed gotchas section covering the required `--digest_function=sha256` startup flag (the Limrun cache is SHA256-only), verifying that builds are genuinely running remotely rather than hitting the cache, and understanding that `--remote_download_outputs=minimal` keeps the `.ipa` in the remote cache rather than on the local disk. Two reference files cover project compatibility and remote-execution verification.
It targets iOS/macOS teams that already use Bazel, plus platform and CI engineers who want reproducible remote Apple builds. Use cases include compiling a rules_apple app from Linux, installing it on a remote simulator, and publishing preview assets for CI. For interacting with the running app it defers to limrun-ios-simulator, and for plain xcodebuild projects it defers to limrun-xcode.
Use it when the project is a Bazel workspace (has MODULE.bazel or WORKSPACE) building rules_apple / rules_swift targets. For plain xcodebuild projects, use limrun-xcode instead.
The `lim` CLI (via npm), Limrun auth through `lim login` or `LIM_API_KEY`, and a Bazel workspace built with bazelisk. Commands must be run from the workspace root.
The Limrun remote cache is SHA256-only while Bazel 9 defaults to BLAKE3. It is a startup flag (can't live in --config=limrun), so you must pass the exact command the CLI prints; otherwise builds or installs fail with digest errors.
The generated build command uses --remote_download_outputs=minimal, which keeps the artifact in the remote cache and downloads nothing. This is expected; drop that flag only if you genuinely need the .ipa locally.
Stop the tunnel with `lim xcode rbe --stop` (about 20 seconds) and delete the instance with `lim xcode delete <id>`.
Quick Setup:
.claude/skills/Repository
limrun-inc/skills