Claude Code on the web
Claude Code on the web runs each session on a Linux VM in the cloud, with no access to macOS, so it can't run Xcode or the iOS Simulator by itself. Set up one cloud environment with the lim CLI, the Limrun skills, and your API key, and Claude builds your iOS app on Limrun's Macs from any of your repositories, then runs it on a simulator you open in your browser.
Set up the environment
Open claude.ai/code. In the environment menu below the prompt box, choose Cloud, then Add cloud environment.

Name the environment limrun and set Network access to Full. To allow only specific domains instead, see Restrict network access.

Create an API key for this environment: open console.limrun.com/settings, go to API Keys, and click Create Token. Then add it under Environment variables:
LIM_API_KEY=lim_...
Anyone who can use the environment can read its variables. Use a key created only for this environment, and delete it in the console if the environment is ever shared more widely than you intended. Sharing the environment with your organization makes the key visible to every member who can use it.
Paste this into Setup script:
#!/bin/bash
npm install --global lim
lim skills install --agents claude --scope globalThe script runs at the start of every session, before Claude Code launches. The first line installs the lim CLI. The second installs every Limrun skill into ~/.claude/skills, so Claude has them in any repository, including ones that don't commit the skills themselves.

Click Add environment. Below the prompt box, pick the limrun environment and your repository, then ask Claude to build and run your app, for example:
Build this app with Limrun and show it to me on an iOS simulator.
What to expect
- Claude picks the build path from the skills. The
limrun-xcodeskill covers xcodebuild projects andlimrun-xcode-bazelcovers Bazel workspaces. - Asking to see the app attaches a simulator. From then on, every successful build installs and relaunches the app on it, and Claude's reply links to the live simulator, which you can tap and type in from your browser.
- Instances outlive the session. The Xcode sandbox and the simulator stay up until your organization's inactivity timeout deletes them. To stop them right away, ask Claude to clean up before you close the session.
- Each new session sets up again. The setup script runs at the start of every session, and Claude starts the build setup over.
Restrict network access
Full access is the simplest setup. To use Custom instead, keep the default allowlist enabled, since it covers package registries such as npm that the setup script needs, and add Limrun's domains:
*.limrun.com
*.limrun.netThen add the hosts your own build downloads dependencies from. If a step fails with a network error, add the host it tried to reach and start a new session. For how the levels work, see Anthropic's network access documentation.
Next steps
Tutorial: Bazel iOS app
Build a template app, change it with Claude, and review it in a pull request preview.
CLI for coding agents
The lim commands the skills run, and how to set them up in other agents.
Build with Xcode
Remote xcodebuild builds for projects without Bazel.
Build with Bazel
Remote build execution for Bazel workspaces.
Was this guide helpful?