Build beyond
real devices
Isolated iOS and Android, on your fleet or in the cloud. Spawn it, hook it, throw it away.
One trunk.
Every device.
iOS emulators and simulators, Android on Cuttlefish, Ranchu and Goldfish. Jailbroken, rooted or stock, from one API. Pick a leaf.
Full iOS, emulated.
- Root shell and writable filesystem when jailbroken
- Screen, file browser and IPA sideload
- Snapshots before every risky step
See below
the surface.
Frida in the runtime, mitm on the wire, gdb in the kernel. Move the lens; click to pin it.
Branch without
losing the baseline.
Save any state. Restore it in seconds. Try the other path from there.
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.
hover to pause · click any tree to detonate it
One platform, four jobs.
The same devices, pointed at the work your team already does.
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 | Orchard | Physical phones | Cloud device farms | Local emulators |
|---|---|---|---|---|
| iOS and Android from one API | Five device types, one sandbox shape | Separate toolchains | Separate toolchains | |
| Jailbreak or root on demand | Per device, or run it stock | Waits on a public jailbreak | Android only | |
| Snapshot, restore and branch | Branch from any saved state | Android only | ||
| Intercept TLS traffic | Hosted mitmproxy or a tunnel to your Burp | Manual proxy and CA setup | Limited | Manual proxy and CA setup |
| Runtime hooks with Frida and lldb | Built in, in jailbroken or rooted mode | After you root it | Wire it up yourself | |
| Kernel debugging | Guest-kernel gdb that freezes the device | By hand | ||
| Safe to detonate malware | Disposable, regrown from a snapshot | Wipe and reflash after | Shared hardware | Shares your machine |
A device is
a line of code.
One selector across the Python and TypeScript SDKs, the CLI, and an MCP server for agents.
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()
Before you
plant one.
What Orchard runs, where it runs, and what it costs, in a line or two each.
01What 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.
02Which 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.
03Can 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.
04Can 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.
05How 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.
06How 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.
07Is 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.