git404hub

what is device-farm fr?

sorrentolab/device-farm — explained in plain English

Analysis updated 2026-05-18

0TypeScriptAudience · developerComplexity · 4/5Setup · hard

tl;dr

A shared local scheduler that queues test runs across a Mac's iOS simulators, Android emulators, and physical devices, retrying on device drops.

vibe map

mindmap
  root((device-farm))
    What it does
      Queues device test jobs
      Retries on device loss
      Live device dashboard
    Tech stack
      TypeScript
      Next.js
      Postgres
      Inngest
    Use cases
      Share simulators across agents
      Run maestro flows via CLI
      Watch live device screens
    Audience
      Mobile developers
      QA engineers

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 make with this?

VIBE 1

Let multiple coding agents or CI jobs share one Mac's simulators without conflicts.

VIBE 2

Retry a test run automatically when its device drops mid session.

VIBE 3

Watch live, low frame rate screens of all connected devices from a dashboard.

VIBE 4

Drop in the dfarm CLI as a replacement for maestro test in existing scripts.

what's the stack?

TypeScriptNext.jsPostgresInngestDrizzle

how it stacks up fr

sorrentolab/device-farm0xkinno/astraea0xkinno/halcyon
Stars000
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyhardhardhard
Complexity4/54/54/5
Audiencedeveloperdeveloperdeveloper

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

how do i run it?

Difficulty · hard time til it works · 1h+

Requires a Mac with connected simulators or devices, Docker for Postgres and Inngest, and mise as the toolchain manager.

The README does not state license terms.

in plain english

device-farm is a shared scheduler for iOS simulators, Android emulators, and physical devices connected to a single Mac. Instead of every automated test or coding agent grabbing its own simulator and colliding with everyone else, all of them submit their work to one shared queue, and device-farm hands out devices one job at a time. If a device disconnects partway through a run, the job is automatically retried on a different available device rather than just failing. It gives you three ways to interact with it: a web dashboard that shows live, low frame rate screens of each connected device along with the queue and a history of past runs, a command line tool called dfarm that acts as a drop in replacement for the maestro test command so existing scripts and agents can switch over easily, and a REST API that exposes the same functionality over HTTP for other tools to call. Under the hood, scheduling a device to a job happens as a single database transaction so two jobs cannot grab the same device at once, and a background system retries failed scheduling attempts. Two separate mechanisms watch for a device dropping out mid run: the agent notices within a few seconds if a device disappears, and the server separately notices if an entire agent goes quiet for about a minute. Either way, the job is marked as having lost its device and gets rescheduled onto another one. To get started you install a toolchain manager called mise, then run one command to install dependencies and another to start the local database, background job system, web dashboard, and device agent together. A separate command compiles and installs the dfarm command line tool. The project is explicit about its current limits: there is no authentication, so anyone on the same network can see the dashboard and submit jobs, and it currently supports only a single Mac at a time.

prompts (copy fr)

prompt 1
Show me how to set up mise and install device-farm's dependencies.
prompt 2
Explain how device-farm reschedules a job when a device disconnects.
prompt 3
Walk me through running device-farm permanently with pm2 or launchd.
prompt 4
Help me point an existing maestro flow at the dfarm CLI instead.

Frequently asked questions

what is device-farm fr?

A shared local scheduler that queues test runs across a Mac's iOS simulators, Android emulators, and physical devices, retrying on device drops.

What language is device-farm written in?

Mainly TypeScript. The stack also includes TypeScript, Next.js, Postgres.

What license does device-farm use?

The README does not state license terms.

How hard is device-farm to set up?

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

Who is device-farm for?

Mainly developer.

peek the repo → explain another one

This repo across BitVibe Labs

double-check against the repo, no cap.