fb-idb
iOS debug bridge
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-idbuv
uv add fb-idbpoetry
poetry add fb-idbInstalling 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
Tags
More Testing packages
Pluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
virtualenvvirtualenv creates isolated Python environments…
permissive · top 100 on PyPI
coverageCoverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
pytest-asynciopytest-asyncio is a pytest plugin that enables…
permissive · top 1,000 on PyPI
pytest-json-ctrfA pytest plugin that generates test reports in…
permissive · top 1,000 on PyPI
facebook-wdaPython client library for controlling iOS…
permissive · top 15,000 on PyPI
pymobiledevice3A pure Python library and command-line tool for…
copyleft · top 15,000 on PyPI
pbxprojReads, modifies, and writes Xcode .pbxproj…
permissive · top 15,000 on PyPI
frida-toolsProvides command-line tools for Frida, a…
unclear · top 15,000 on PyPI
KivyKivy is a Python framework for building…
permissive · top 15,000 on PyPI
cibuildwheelAutomates building and testing Python wheels…
permissive · top 5,000 on PyPI
openstep-parserParses Xcode project files (OpenStep format)…
permissive · top 15,000 on PyPI
pyobjc-corePyObjC-core provides the foundational bridge…
permissive · top 5,000 on PyPI
macholibAnalyzes and edits Mach-O headers, the…
permissive · top 5,000 on PyPI
pyobjc-framework-SocialProvides Python bindings to macOS's Social…
permissive · top 15,000 on PyPI