[null, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/Slides/stf-4-devices.jpg", "src": "https://openstf.io/assets/img/freeze/Slides/stf-4-devices.jpg", "formatted_filename": "stf devices"}, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/navigation.png", "src": "https://openstf.io/assets/img/freeze/screens/navigation.png", "formatted_filename": "navigation"}, null, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/clipboard.png", "src": "https://openstf.io/assets/img/freeze/screens/clipboard.png", "formatted_filename": "clipboard"}, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/apps.png", "src": "https://openstf.io/assets/img/freeze/screens/apps.png", "formatted_filename": "apps"}, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/debug.png", "src": "https://openstf.io/assets/img/freeze/screens/debug.png", "formatted_filename": "debug"}, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/shell.png", "src": "https://openstf.io/assets/img/freeze/screens/shell.png", "formatted_filename": "shell"}, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/logs.png", "src": "https://openstf.io/assets/img/freeze/screens/logs.png", "formatted_filename": "logs"}, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/screenshots-big.png", "src": "https://openstf.io/assets/img/freeze/screens/screenshots-big.png", "formatted_filename": "screenshots big"}, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/search.png", "src": "https://openstf.io/assets/img/freeze/screens/search.png", "formatted_filename": "search"}, null, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/hardware.png", "src": "https://openstf.io/assets/img/freeze/screens/hardware.png", "formatted_filename": "hardware"}, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/photo.png", "src": "https://openstf.io/assets/img/freeze/screens/photo.png", "formatted_filename": "photo"}, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/manner.png", "src": "https://openstf.io/assets/img/freeze/screens/manner.png", "formatted_filename": "manner"}, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/mainteinance.png", "src": "https://openstf.io/assets/img/freeze/screens/mainteinance.png", "formatted_filename": "mainteinance"}, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/port-forwarding.png", "src": "https://openstf.io/assets/img/freeze/screens/port-forwarding.png", "formatted_filename": "port forwarding"}, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/freeze/screens/store.png", "src": "https://openstf.io/assets/img/freeze/screens/store.png", "formatted_filename": "store"}, null, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/authors/SimoKinnunen.jpg", "src": "https://openstf.io/assets/img/authors/SimoKinnunen.jpg", "formatted_filename": "SimoKinnunen"}, null, {"document_url": "https://openstf.io/", "unformatted_src": "assets/img/authors/GuntherBrunner.jpg", "src": "https://openstf.io/assets/img/authors/GuntherBrunner.jpg", "formatted_filename": "GuntherBrunner"}, null]
Welcome to STF

Control and manage real Smartphone devices from your browser

No more trouble

Forget having to physically pick up a device ever again.
No more learning where the buttons are, or where the power cord goes.


Any device in realtime, using your mouse and keyboard.
Or even your own smartphone.

Manage inventory

See which devices are connected, and who is using which device.
Search devices by any specification.

From your browser

No app installation is required
as a user.
Do realtime testing on more than one device, using just your browser.



Testing devices remotely has never been this easy

Android 2.3 ~ 8.0

including Wear 5.1, FireOS, CyanogenMod

Keyboard & Mouse Input

with Multi-Touch, even in Safari iOS

Copy & Paste

to and from the device

Take Screenshots

and resize them

Drag & Drop APK files

Install and launch apps in 1 step Open URLs

in any installed browser

Display Logs

with realtime filtering

Run Shell Commands

without leaving your browser

Debug Remotely

with Android Studio, Chrome Debug Tools, as if it was plugged into your computer


Reverse Port Forwarding, Device Rotation, Play Store Automation...

Control Multiple Devices

As if they were plugged directly to your computer See what’s included in STF

All Screenshots Basic Advanced App Upload App Shortcuts Remote Debug Run Shell Advanced Input Hardware Details Real Device Photos Manner Mode Restart Device Reverse Port Forwarding Store Automation STF in action (short version) 
STF was started in Tokyo for use inside CyberAgent.
Now it is a community-based Open Source project.

Simo Kinnunen Günther Brunner 
Check for detailed instructions in the STF GitHub page.

Open in


For support, you can use the following channels:

GitHub Issues

