Stf
Control and manage Android devices from your browser.
Install / Use
/learn @openstf/StfREADME
Warning
This project along with other ones in OpenSTF organisation is provided as is for community, without active development.
You can check any other forks that may be actively developed and offer new/different features here.
Active development has been moved to DeviceFarmer organisation. Version 3.4.2 is the last release of OpenSTF on DockerHub and 3.4.1 on npmjs.
<img src="res/common/logo/exports/STF-128.png?raw=true" style="width:100px;height:100px;" alt="STF">STF (or Smartphone Test Farm) is a web application for debugging smartphones, smartwatches and other gadgets remotely, from the comfort of your browser.
STF was originally developed at CyberAgent to control a growing collection of more than 160 devices. As of July 2016 development is mainly sponsored by HeadSpin and other individual contributors.
We welcome financial contributions in full transparency on our open collective.


Credits
Sponsors
Thank you to all our sponsors! (please ask your company to also support this open source project by becoming a sponsor)
Gold Sponsor
<img src="doc/sponsors/headspin-wordmark-orange.png?raw=true" alt="HeadSpin" width="400">
HeadSpin provides secure and scalable STF for iOS integrated with Appium/XCTest/Selenium/Espresso, High speed interaction Audio/Video/Game testing and AI based Root cause analysis for Performance Management. It's free to start using HeadSpin in 150+ locations worldwide! Try it out for free.
HeadSpin offers a generous monthly contribution towards STF development.
Contributors
Thank you to all the people who have already contributed to STF! <a href="../../graphs/contributors"><img src="https://opencollective.com/openstf/contributors.svg?width=890" /></a>
Backers
Thank you to all our backers! [Become a backer]
<a href="https://opencollective.com/openstf#backers" target="_blank"><img src="https://opencollective.com/openstf/backers.svg?width=890"></a>
How to become a sponsor
Please use our open collective or [contact us][contact-link] directly for sponsor arrangements. Both recurring and one-time contributions are most welcome. Contributions towards a specific issue or feature are also possible, and can be attributed to your company in our release notes and other related materials. Hardware-only contributions, whether new or used, are also extremely helpful and well received, especially if you find a device that doesn't work. Please see our donation transparency report for past hardware contributions.
Features
- OS support
- Android
- Supports versions 2.3.3 (SDK level 10) to 9.0 (SDK level 28)
- Supports Wear 5.1 (but not 5.0 due to missing permissions)
- Supports Fire OS, CyanogenMod, and other heavily Android based distributions
rootis not required for any current functionality
- Android
- Remote control any device from your browser
- Real-time screen view
- Refresh speed can reach 30-40 FPS depending on specs and Android version. See minicap for more information.
- Rotation support
- Supports typing text from your own keyboard
- Supports meta keys
- Copy and paste support (although it can be a bit finicky on older devices, you may need to long-press and select paste manually)
- May sometimes not work well with non-Latin languages unfortunately.
- Multitouch support on touch screens via minitouch, two finger pinch/rotate/zoom gesture support on regular screens by pressing
Altwhile dragging - Drag & drop installation and launching of
.apkfiles- Launches main launcher activity if specified in the manifest
- Reverse port forwarding via minirev
- Access your local server directly from the device, even if it's not on the same network
- Open websites easily in any browser
- Installed browsers are detected in real time and shown as selectable options
- Default browser is detected automatically if selected by the user
- Execute shell commands and see real-time output
- Display and filter device logs
- Use
adb connectto connect to a remote device as if it was plugged in to your computer, regardless of ADB mode and whether you're connected to the same network- Run any
adbcommand locally, including shell access - Android Studio and other IDE support, debug your app while watching the device screen on your browser
- Supports Chrome remote debug tools
- Run any
- File Explorer to access device file system
- Experimental VNC support (work in progress)
- Real-time screen view
- Monitor your device inventory
- See which devices are connected, offline/unavailable (indicating a weak USB connection), unauthorized or unplugged
- See who's using a device
- Search devices by phone number, IMEI, ICCID, Android version, operator, product name, group name and/or many other attributes with easy but powerful queries
- Show a bright red screen with identifying information on a device you need to locate physically
- Track battery level and health
- Rudimentary Play Store account management
- List, remove and add new accounts (adding may not work on all devices)
- Display hardware specs
- Use the Booking & Partitioning systems
- Overview
- The partitioning system allow you
[administrator level]to allocate distinct sets of devices to different projects or organizations (i.e. represented by user sets) for an unlimited period - The booking system allows you to reserve a set of devices for a set of users during a limited time (e.g. from 3:00 am to 4:00 am during 5 days)
- What is common to the booking & partitioning systems is the concept of Group, that is, an association of devices, users and a specification of time
- Report to GroupFeature.pdf for detailed documentation on how to use this feature
- The partitioning system allow you
- Monitor your group inventory
- See which groups are active, ready or pending, as well as other group properties: name, identifier, owner, devices, users, class, duration, repetition, starting date, expiration date
- Search groups by their property values
- Contact by email the owners of the selected groups
- Manage your groups
- Create a group by specifying its name, devices, users and schedule
- Get ready your group in order it is scheduled by the system
- Search groups by their property values
- Remove your group or a selection of your groups
- Contact by email the owners of the selected groups
[administrator level]
- Overview
- Manage the devices
[administrator level]- Search the devices by their property values
- Remove a device or a selection of devices meeting a set of filters: present, booked, annotated, controlled
- Manage the users
[administrator level]- Create a user by providing his name and his email
- Search the users by their property values
- Remove a user or a selection of users meeting a set of filters: group owner
- Contact a user or a selection of users by email
- Set the default groups quotas applicable to all users
- Set the groups quotas applicable to a specific user
- Simple REST API
Status
STF is in continued, active development, but development is still largely funded by individual team members and their unpaid free time, leading to slow progress. While normal for many open source projects, STF is quite heavy on the hardware side, and is therefore somewhat of a money sink. See how to become a sponsor if you or your company would like to support future development.
We're also actively working to expand the team, don't be afraid to ask if you're interested.
Short term goals
Here are some things we are planning to address ASAP.
- Performance
- Properly expose the new VNC functionality in the UI
- Properly reset user data between uses (Android 4.0+)
- Automated scheduled restarts for devices
- More!
Consulting services
We highly encourage open participation in the community. However, if you're running a business that uses STF or would like to use STF, you may sometimes want to have an expert, i.e. one of the original developers or a skilled contributor, work with you to set up a prototype for evaluation purposes, add support for new or old hardware, figure out an issue, fix a bug or add some new feature. Our services are similar to FFmpeg's. [Contact us][contact-link] with details and we'll see what we can do.
Availability is limited and tied to individual developer's schedules.
A quick note about
Related Skills
node-connect
339.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
