fb-idb
iOS debug bridge
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- 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.
- 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 · maintenance · safety
MIT (permissive) — MIT-licensed under permissive terms, so you can use, modify, and distribute the package freely with minimal restrictions.
last release 2022-03-03 (1625 days) · last repo commit 2026-08-14 · 5,274 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 80,135 downloads/mo, #14,317 on PyPI
Alternatives
Verify before relying
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)- 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
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 on it.
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
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.
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.
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)
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 packagesaiofilesgrpclibprotobuftreelib |
| 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 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3.6 |
Evidence: fb_idb-1.1.7-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “iOS device testing CLI”
- fb-idbA command-line and Python client for automating iOS Simulators and…
- pymobiledevice3A pure Python library and command-line tool for interacting with iOS…
- ipsw-parserParses and extracts data from iOS IPSW firmware files, providing…
Give your agent the search over MCP, or paste the wish link into any chat.
More Testing packages
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
virtualenv creates isolated Python environments where packages can be installed independently without affecting the system Python or other projects.
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
pytest-asyncio is a pytest plugin that enables writing and running async test functions using the asyncio library, allowing developers to await code directly within test cases.
Install it if you write tests for any asyncio-based code.
A pytest plugin that generates test reports in Common Test Report Format (CTRF) as JSON, compatible with pytest-xdist and pytest-playwright for distributed and browser-based testing.
Install it if you need CTRF-formatted test output for CI/CD integration or cross-tool reporting.
See also facebook-wda · pymobiledevice3 · pbxproj · frida-tools · Kivy · cibuildwheel · openstep-parser · pyobjc-core · macholib · pyobjc-framework-Social