explaingit

openstf/stf

13,876JavaScriptAudience · developerComplexity · 4/5Setup · hard

TLDR

A web application that lets entire teams remotely control a pool of physical Android devices from a browser, see screens, install APKs, run shell commands, now archived with active development continued at DeviceFarmer.

Mindmap

mindmap
  root((repo))
    What it does
      Remote device control
      Browser based UI
      ADB over network
    Features
      Real time screen
      APK install drag drop
      Device booking
      Shell commands
    Audience
      QA teams
      Mobile developers
      Test automation
    Status
      Archived
      DeviceFarmer fork
    Tech Stack
      JavaScript
      Node.js
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Set up a shared pool of Android test devices that your whole QA team can access remotely without passing phones around.

USE CASE 2

Run automated Android tests against real hardware from a CI pipeline by controlling devices over the STF API.

USE CASE 3

Control and debug Android apps from a web browser without needing a physical USB connection at your desk.

Tech stack

JavaScriptNode.js

Getting it running

Difficulty · hard Time to first run · 1day+

Requires a server with USB-connected Android devices and multiple infrastructure components to wire together.

In plain English

STF, short for Smartphone Test Farm, is a web application that lets you remotely control Android phones and tablets from a regular browser. You connect physical devices to a central server over USB, and anyone with access to the web interface can then see the device screen in real time, type from their keyboard, tap and swipe using the mouse, install APK files by dragging them into the browser, run shell commands, and even use the standard Android Debug Bridge (adb) tool as if the phone were physically plugged into their own computer. The system was originally built at CyberAgent to manage a fleet of more than 160 test devices. It is aimed at software teams that need many developers or testers to share a pool of real hardware without physically handing devices around. The inventory screen shows which devices are connected, who is currently using each one, and device details like battery level, Android version, and hardware specs. There is also a booking and partitioning system that lets administrators schedule access windows and allocate groups of devices to specific teams or projects. The README opens with a prominent warning: this repository is no longer under active development. The OpenSTF organization published version 3.4.2 as its final release, and ongoing work has moved to a separate GitHub organization called DeviceFarmer. If you want a maintained version, the README points to active forks in the network graph. Supported Android versions range from 2.3.3 through 9.0. Root access is not required. The project is written in JavaScript and was originally sponsored by HeadSpin. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
I want to set up a device farm like STF for a team of 5 Android testers. Walk me through the DeviceFarmer fork setup on a Linux server with 10 USB-connected phones.
Prompt 2
Show me how to use the STF REST API to programmatically book a device, install an APK, run a shell command, and release the device when done.
Prompt 3
How do I connect to an STF-managed Android device using a standard adb command from my local machine as if it were plugged in locally?
Open on GitHub → Explain another repo

← openstf on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.