Build beyond
real devices

Isolated iOS and Android, on your fleet or in the cloud. Spawn it, hook it, throw it away.

5
device types, iOS & Android
Rooted or stock
jailbroken, rooted, or not
provisioning
to a booted device
SDK · CLI · MCP
drive it from anywhere
Devices

One trunk.
Every device.

iOS emulators and simulators, Android on Cuttlefish, Ranchu and Goldfish. Jailbroken, rooted or stock, from one API. Pick a leaf.

iOS Emulatorios · emulatoriOS Simulatorios · simulatorCuttlefishandroid · cuttlefishGoldfishandroid · goldfishRanchuandroid · ranchu
ios · emulator

Full iOS, emulated.

  • Root shell and writable filesystem when jailbroken
  • Screen, file browser and IPA sideload
  • Snapshots before every risky step
modesjailbroken · non-jailbroken
transportSSH
Instrumentation

See below
the surface.

Frida in the runtime, mitm on the wire, gdb in the kernel. Move the lens; click to pin it.

Sign inSURFACE · VIEW TREEUIImageViewUIStackView · 3UILabel "Welcome back"RUNTIME · FRIDAhook SSLContext.initTrustManager replacedhook getClassLoader → spoofedsend {pinning: bypassed}NETWORK · MITMPOST /v3/auth · 200 · tls1.3GET /config.json · 304WS rt.target.app · 101KERNEL · GDBbp do_filp_openfs/namei.c:3714x0 0x0000007fb3c4e080whole device frozenruntime01Surfacewhat the user sees02RuntimeFrida hooks the live process03Networkmitm decodes every request04Kernelgdb freezes the whole device
Snapshots

Branch without
losing the baseline.

Save any state. Restore it in seconds. Try the other path from there.

clean-bootfrida-attachedpinning-bypassedproxy-tunnel
head · pinning-bypassed
Isolation

Detonate. Discard.
Regrow.

Every device sits on its own plot. Infect one and the rest of the orchard never notices; the snapshot grows it back clean.

cf-02 · snapshot saved
›cf-02 · snapshot pre-detonate saved

hover to pause · click any tree to detonate it

Compare

Fewer phones.
More reach.

Physical phones, cloud device farms, local emulators. Where each one stops when you need root, a snapshot or the kernel.

Feature OrchardPhysical phonesCloud device farmsLocal emulators
iOS and Android from one APIFive device types, one sandbox shapeSeparate toolchainsSeparate toolchains
Jailbreak or root on demandPer device, or run it stockWaits on a public jailbreakAndroid only
Snapshot, restore and branchBranch from any saved stateAndroid only
Intercept TLS trafficHosted mitmproxy or a tunnel to your BurpManual proxy and CA setupLimitedManual proxy and CA setup
Runtime hooks with Frida and lldbBuilt in, in jailbroken or rooted modeAfter you root itWire it up yourself
Kernel debuggingGuest-kernel gdb that freezes the deviceBy hand
Safe to detonate malwareDisposable, regrown from a snapshotWipe and reflash afterShared hardwareShares your machine
yes partly nocategories, not products · typical setups
Developers

A device is
a line of code.

One selector across the Python and TypeScript SDKs, the CLI, and an MCP server for agents.

running
pip install tryorchard-sdk
from orchard_sdk import Orchard # reads ORCHARD_API_URL and ORCHARD_API_KEYorchard = Orchard.from_env() # address a rooted Cuttlefish device by uuid, name or tagsb = orchard.sandbox("cf-07")sb.start()sb.apps.install("./build/app.apk") # bypass SSL pinning with a Frida script, stream the hooks back for 30 swith sb.frida.stream_script("pinning-bypass.js", "com.target.app", timeout=30) as hooks:    for msg in hooks:        print(msg["payload"]) # intercept TLS through your own Burp over a reverse tunnelsb.tunnel("127.0.0.1", 8080).run()
output
Questions

Before you
plant one.

What Orchard runs, where it runs, and what it costs, in a line or two each.

01

What is Orchard?

Orchard is a mobile sandboxing platform. It gives you isolated, virtual iOS and Android devices for security testing, research and automation, on machines you own or in the cloud, all behind one API.

02

Which devices does Orchard support?

iOS emulators and iOS simulators, and Android on Cuttlefish, Ranchu and Goldfish. Every device has the same sandbox shape, so the console, SDK, CLI and MCP server work the same way on each.

03

Can I run jailbroken or rooted devices?

Yes. Every device runs either jailbroken or rooted, with a root shell, writable filesystem and arbitrary installs, or stock (non-jailbroken, non-rooted) to test the app the way your users run it.

04

Can I run Orchard on-premise?

Yes. On-premise deployment isn't self-serve: contact our sales team and we'll scope it to your needs. Any machine you own becomes a node. Remote nodes dial out to the control plane, so they need no inbound ports.

05

How does cloud pricing work?

Cloud devices, for individuals, are priced per device-hour by device type, starting at $1.50 an hour for the cheapest. Idle devices auto-terminate on a TTL, so a forgotten device stops billing.

06

How do I drive devices from code or an AI agent?

Use the Python or TypeScript SDK, the CLI, or the MCP server. The MCP server lets an AI agent take screenshots, tap, type, inject Frida scripts and save snapshots on a device.

07

Is Orchard safe for malware analysis?

Devices are disposable and isolated from each other. Snapshot a clean device, detonate the sample, watch what it changes and sends, then discard the device and regrow it from the snapshot.

Plant your
first device

Cloud devices from $1.50 an hour, or run Orchard on machines you own.