Skip to main content
Glama

pitbox

CI npm node license

Run, drive and debug apps on emulators, simulators and devices from one MCP server — fast and token-lean.

pitbox gives a coding agent (and you) one tool for the whole local loop: the stand your app talks to, the devices it runs on, and the checks that tell you what is broken. It works with any framework; React Native gets extra reach inside the app.

  • Phones, foldables, tablets, TVs, watches, XR headsets, glasses and cars — Android emulators and devices, Apple simulators, and web apps in a browser, behind the same tools.

  • Answers an agent can afford — the screen as short lines with refs, actions that wait for the UI to settle and reply with what changed, images only on request.

  • Flows — a line-per-step script run by the daemon: a whole pass in one call, one verdict.

  • Checks instead of screenshots — is the video playing, does the screen match its baseline, can the D-pad reach everything, which function made the frame janky.

  • The stand — services, mocks and backend states started from one config and kept warm between sessions.

  • Inside a React Native app with no app code — fresh code or stale, the network log and rules, the console, eval and logpoints, hot updates, React renders.

Quick start

yarn add -D @veksa/pitbox
npx pitbox init          # writes pitbox.config.ts from what it finds in the project

Add the MCP server to the project's .mcp.json:

{"mcpServers": {"pitbox": {"command": "npx", "args": ["pitbox", "mcp"]}}}

Or drive it from the shell:

pitbox up                # the stand: services, dev server
pitbox boot              # the configured emulator, ports forwarded
pitbox open              # launch the app
pitbox snapshot          # the screen as text
pitbox run smoke         # flows/smoke.flow, one verdict

A config by hand:

// pitbox.config.ts
import {defineConfig} from '@veksa/pitbox';

export default defineConfig({
  app: {android: 'com.example.app', apple: 'com.example.app'},
  android: {avd: 'Pixel_8'},
  services: {
    db: {start: 'docker compose up -d db', stop: 'docker compose stop db', health: 'docker:db'},
    api: {start: 'yarn --cwd server start', health: 'http://localhost:3000/health', expose: 3000, dependsOn: ['db']},
  },
  devserver: {adapter: 'metro', root: 'mobile', bytecode: true},
});

Related MCP server: vibeview

Documentation

Install

requirements, the MCP server, connect libraries for React Native, Swift and Android

Features

everything pitbox does, by area

Config

every field of pitbox.config.ts

Flows

the flow language: steps, selectors, recording

Using pitbox from an agent

how an agent gets the most out of the tools

Benchmarks

what pitbox measures and how

Examples

sample Android, Apple and React Native apps with their flows

Contributing

See CONTRIBUTING.md.

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to author, validate, and execute browser/API test plans with parallel drivers, assertions, and captured evidence such as screenshots and network logs.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables coding agents to verify work on live cloud devices by uploading builds, starting sessions, driving UI through UI-tree refs, reading logs, and taking screenshots on iOS, Android, Apple TV, and Android TV.
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables local, air-gapped automation of Android and iOS devices and emulators, letting AI agents inspect UI hierarchies, tap, swipe, type, manage apps, capture screenshots, and pull device logs and crash reports. Bundles banking-grade safeguards such as automatic PII and secret redaction, PCI-DSS-style log sanitization, and configurable screenshot-blocking DLP policies.
    Apache 2.0