skillfed

fb-idb

iOS debug bridge

fb-idb v1.1.7 80.1K downloads/30d#14,317 on PyPI5,274
Permissive license MIT Active released

What it is and what it does

fb-idb is a Python client and CLI tool that lets you automate iOS Simulators and Devices from anywhere, not just from Xcode. It works by running a companion daemon on macOS that communicates with your iOS targets, while the Python client can run on any machine. This architecture enables scenarios like centralized device labs or distributed test sharding across many simulators.

The package exposes low-level primitives—launching apps, listing targets, querying installed apps, and accessing Xcode features not normally available outside the GUI—so you can build custom testing workflows. It depends on aiofiles, grpclib, protobuf, and treelib to handle async I/O, gRPC communication, protocol buffers, and tree output formatting.

Use it for:

  • Run iOS app tests in parallel across a pool of simulators in a data center or CI environment
  • Automate app launch, interaction, and state inspection from a Python script or IDE without Xcode
  • Build a centralized device lab where remote machines can control simulators on a macOS host
  • Access Xcode private framework features (e.g., advanced debugging, performance profiling) from the command line
  • Integrate iOS testing into a custom build or test orchestration pipeline

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

A command-line and Python client for automating iOS Simulators and Devices remotely, exposing granular primitives for testing and automation workflows.

Yes, if you need to automate iOS testing at scale or from outside Xcode. The low install friction and active repository are positive signals. However, the 2022 release date and required separate macOS companion daemon mean you should verify current iOS version compatibility and CI/CD integration feasibility before committing to a large test infrastructure.

Install

fb-idb on PyPI

pip

pip install fb-idb

uv

uv add fb-idb

poetry

poetry add fb-idb

Installing fb-idb

Before you install

Low friction install as a pure Python wheel. The package is actively maintained with recent commits, though the latest release was in 2022; the companion daemon (idb-companion) must be installed separately via brew on macOS to function.

License in practice

MIT-licensed under permissive terms, so you can use, modify, and distribute the package freely with minimal restrictions.

Quickstart

pip install fb-idb

from idb.client import IdbClient
import asyncio

async def list_targets():
    async with IdbClient() as client:
        targets = await client.list_targets()
        for target in targets:
            print(target)

Requires idb-companion installed on macOS via brew (brew install idb-companion) and a macOS host with Xcode; the Python client can run elsewhere but must connect to a companion daemon.

Verify before relying

  • Whether the 2022 release date indicates active development or maintenance mode relative to current iOS versions
  • Compatibility with modern Python versions beyond the stated 3.6+ requirement
  • Whether the separate idb-companion installation is a significant barrier for CI/CD environments

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.7)
Install friction low — pure-Python wheel
Runtime dependencies 4 — aiofiles, grpclib, protobuf, treelib
Maintenance actively maintained — 1,625 days since the last release
Last repo commit
First released
Downloads 80,135/month — #14,317 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: fb_idb-1.1.7-py3-none-any.whl

License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3.6

Tags

iOS simulator automationiOS device testing CLIremote iOS automationiOS app testing frameworkXcode automation alternativeiOS test orchestrationdevice lab automation
ios-automationdevice-testingremote-execution

More Testing packages