Mobile Sandboxing Platform

Build beyond
real devices

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

Launch console
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

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
from orchard_sdk import Orchard oc = Orchard(api_key="orc_...") # spawn a rooted Android device on Cuttlefishdev = oc.sandboxes.create(platform="android", image="cuttlefish", rooted=True, tag="pentest")dev.wait_until("running") # intercept TLS through your own Burp over a reverse tunneldev.proxy.tunnel(to="127.0.0.1:8080") # bypass SSL pinning with a Frida script, stream the hooks backfor msg in dev.frida.stream(script="pinning-bypass.js"):    print(msg["payload"])
output

Plant your
first device

Self-host free, or start in the cloud at 10 credits to the dollar.