Skip to main content
Uplink is a mobile device automation platform that enables you to control and automate real mobile browsers programmatically. Similar to how tools like Puppeteer and Playwright automate Chrome browsers, Uplink brings that same level of control to mobile devices.

How it works

Uplink provides a familiar API interface similar to Puppeteer and Playwright, but instead of controlling Chrome on a desktop, you’re controlling real mobile browsers on iOS and Android devices.
import uplink from '@uplink-code/uplink'

// Connect to an Uplink server
const session = await uplink.session('<organization-api-key>', {
  projectId: '<project-id>',
  include: { ecdsa: true, ecdh: true }
})
const client = await uplink.client.fromSession(session)

// Launch a browser on a mobile device
const browser = await client.launch()
const page = await browser.newPage()

// Automate like you would with Puppeteer
await page.goto('https://example.com')
await page.click('#submit-button')
const title = await page.evaluate(() => document.title)

AI-Powered Automation

Uplink also supports AI-powered browser automation with natural language instructions:
import uplink from '@uplink-code/uplink'
import ai from '@uplink-code/ai'

const agent = ai.createAgent({
  provider: 'anthropic',
  options: { apiKey: process.env.ANTHROPIC_API_KEY }
})

const session = await uplink.session('<organization-api-key>', {
  projectId: '<project-id>',
  include: { ecdsa: true, ecdh: true }
})
const client = await uplink.client.fromSession(session, { agent })
const browser = await client.launch()
const page = await browser.newPage()

await page.goto('https://example.com')

// Use natural language to control the browser
await page.act('Click the sign up button')
await page.act('Fill in the email field with [email protected]')

// Extract structured data with type safety
import { z } from 'zod'

const result = await page.extract(
  'Get the product name and price',
  z.object({
    name: z.string(),
    price: z.number()
  })
)

Real mobile browsers

Test on actual mobile devices, not emulators or simulators. Get authentic behavior, accurate rendering, and real-world performance.

Familiar API

If you’ve used Puppeteer or Playwright, you already know how to use Uplink. The API is designed to feel familiar while providing mobile-specific capabilities.

Real device automation

Real users on real devices mean authentic browser behavior. Users handle their own authentication.

Flexible integration

Choose the integration method that works for your use case:
  • SDK integration: Add Uplink to your own mobile app
  • Connect app: Use our ready-made app with QR code access

AI automation (optional)

Use AI to control browsers with natural language instructions. Perfect for dynamic UIs, complex workflows, and rapid prototyping without writing selectors.

Use cases

AI Agents

Build autonomous agents that interact with mobile apps and websites using natural language instructions

Automated testing

Test your mobile web applications on real devices with automated workflows

Data extraction

Extract and process data from mobile-optimized websites with type-safe AI extraction

Post-authentication automation

Wait for users to authenticate themselves, then automate complex workflows in authenticated sessions

Form automation

Fill out complex forms intelligently using AI to understand field labels and requirements

Dynamic UI testing

Test apps with changing selectors and dynamic content using AI-powered interactions

Next steps