Skip to main content

Welcome to Limrun

Limrun provides cloud-based iOS and Android device automation through a powerful TypeScript SDK. Create instances, automate mobile workflows, run tests, and build interactive experiences—all from your code.

Quickstart

Get up and running in minutes with your first iOS or Android instance

API Reference

Explore the complete API documentation and TypeScript types

Installation

Install the SDK and configure your environment

Core Concepts

Understand instances, connections, and automation workflows

What is Limrun?

The Limrun TypeScript SDK enables you to:
  • Provision cloud devices instantly - Create iOS simulators and Android emulators on-demand in seconds
  • Automate mobile interactions - Control touches, keyboard input, app launches, and screen captures programmatically
  • Run mobile tests at scale - Integrate with Playwright, Appium, or custom test frameworks
  • Build interactive tools - Create developer sandboxes, demo environments, or automation workflows
  • Access via WebSocket - Real-time bidirectional communication with low latency

Key Features

iOS Automation

  • Full iOS simulator control via WebSocket API
  • Screenshot capture and accessibility tree inspection
  • Touch, tap, and gesture simulation
  • App installation, launching, and termination
  • Keyboard input and hardware key simulation
  • Element-based interactions using accessibility selectors
  • Integration with Xcode and development workflows

Android Automation

  • Android emulator provisioning with ADB access
  • WebSocket-based ADB tunneling
  • APK installation from URLs
  • Screenshot and device control
  • Playwright for Android integration
  • Chrome DevTools Protocol support

Developer Experience

  • TypeScript-first - Fully typed API with IntelliSense support
  • Cross-runtime - Works in Node.js 20+, Deno, Bun, Cloudflare Workers, and more
  • Auto-pagination - Iterate through large result sets effortlessly
  • Built-in retries - Automatic retry logic for transient failures
  • Error handling - Structured error types for different failure scenarios
  • Resource cleanup - Automatic instance lifecycle management

Simple Example

Here’s a complete example that creates an iOS instance and takes a screenshot:
import Limrun, { Ios } from '@limrun/api';

const limrun = new Limrun({
  apiKey: process.env['LIM_API_KEY'],
});

// Create an iOS instance
const instance = await limrun.iosInstances.create({
  wait: true,  // Wait until ready to connect
  metadata: {
    labels: { environment: 'demo' },
  },
});

// Connect to the instance
const client = await Ios.createInstanceClient({
  apiUrl: instance.status.apiUrl!,
  token: instance.status.token,
});

// Take a screenshot
const screenshot = await client.screenshot();
console.log(`Screenshot: ${screenshot.width}x${screenshot.height}`);

// Clean up
client.disconnect();

Use Cases

Mobile Testing

Run automated UI tests, visual regression tests, and integration tests on real iOS and Android devices in the cloud.

CI/CD Integration

Integrate mobile testing into your continuous integration pipeline with on-demand device provisioning.

Development Sandboxes

Create isolated development environments for testing apps, debugging issues, or exploring iOS/Android features.

Demo Automation

Build automated product demos, tutorials, or interactive documentation with programmatic device control.

Platform Support

The SDK supports modern JavaScript runtimes:
  • Node.js 20 LTS or later
  • Deno v1.28.0 or higher
  • Bun 1.0 or later
  • Cloudflare Workers
  • Vercel Edge Runtime
  • Web browsers (Chrome, Firefox, Safari, Edge)
Requires TypeScript 4.9 or later for full type support.

Next Steps

1

Install the SDK

Follow the installation guide to add @limrun/api to your project
2

Get your API key

Sign up at lim.run and obtain your LIM_API_KEY
3

Try the quickstart

Follow the quickstart guide to create your first instance
4

Explore examples

Check out integration examples for Playwright, Appium, and WebSocket automation

Getting Help

Need assistance? We’re here to help:
The Limrun SDK is generated with Stainless and follows SemVer conventions for versioning.

Build docs developers (and LLMs) love