whatisgithub

What is stf?

openstf/stf — explained in plain English

Analysis updated 2026-06-24

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

In one sentence

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

What do people build with it?

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.

What is it built with?

JavaScriptNode.js

How does it compare?

openstf/stfgoogle/webfundamentalshabitrpg/habitica
Stars13,87613,87613,878
LanguageJavaScriptJavaScriptJavaScript
Setup difficultyhardeasymoderate
Complexity4/51/53/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

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

So what is it?

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?

Frequently asked questions

What is stf?

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.

What language is stf written in?

Mainly JavaScript. The stack also includes JavaScript, Node.js.

How hard is stf to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is stf for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.