Skip to main content

iDeviceTail — wireless iOS/iPadOS log collection

CI License: MIT Python 3.10–3.13

Collect and view logs from your own iPhones/iPads over Wi‑Fi, with no cable during normal operation. One desktop app (Python, cross‑platform) fuses two capture engines into a single live viewer:

Engine What it gets Cable ever? iOS setup Works on
A — Device engine (pymobiledevice3) Real system logs (all processes), crash reports, sysdiagnose One‑time USB pair + Trust, then wireless Enable Wi‑Fi sync + Developer Mode macOS = full · Windows/Linux = full for iOS ≤ 17.3, partial (syslog only) for iOS 17.4+ over Wi‑Fi
B — Agent engine (Swift app + SDK) The agent app's own logs + logs of any app that links IDeviceTailKit Never (cable only to sideload the app once on Windows) Install the app, tap Start Any stock iOS, no pairing, no Developer Mode

Read docs/FEASIBILITY.md first. iOS does not give third‑party software the system‑log firehose. Engine A uses Apple's supported device‑debug channel (lockdown syslog_relay / os_trace_relay, the same one Console.app and log stream use) and therefore inherits Apple's pairing + Developer Mode requirements. Engine B is 100% App‑sandbox legal but only sees its own process. The tool ships both and merges them.

📖 Full step‑by‑step setup + run guide (phone and desktop): docs/GUIDE.md.

Quick start

Windows: double‑click start.bat. First run makes a venv, installs, launches the server and opens the web UI. That's the only "command".

macOS/Linux (or manual):

python -m venv .venv && . .venv/bin/activate     # Windows: .venv\Scripts\activate
pip install -e ".[device]"                        # from a checkout
#   or:  pip install "idevicetail[device]"        # from PyPI
python -m idevicetail serve                        # opens http://localhost:3017 in your browser

Use Python 3.10–3.13 (not 3.14 yet — pymobiledevice3's C‑ext deps have no 3.14 wheels). The app‑log agent (Engine B) works on any 3.10+.

Everything else is buttons in the browser — no more commands:

In the UI Does
device card → ▶ Start / os_trace begin/stop a wireless system‑log stream (Engine A)
toolbar Keyword filter + OK, level/process/subsystem/source pickers live filtering of a huge stream
⬇ Export view save the currently filtered lines
📂 Open file open / reveal / download the always‑on "real‑time file" (data/sessions/realtime-*.log + .ndjson)
🗑 Clear / Pause / follow manage the view
device card → Setup one‑time USB provisioning (Pair · Wi‑Fi sync · Developer Mode) without touching a terminal
device card → Crashes / Sysdiag pull crash reports / trigger a sysdiagnose

A CLI still exists for scripting (idevicetail discover | stream | crash-pull | export …) but you never need it for normal use.

Repository layout

iDeviceTail/
├── docs/            Feasibility report, architecture, protocol, compatibility, setup, troubleshooting, test plan
├── desktop/
│   ├── idevicetail/   Python package: discovery, engines, normalizer, bus, store, aiohttp server, CLI
│   │   └── web/     Static log‑viewer UI (no build step)
│   └── tests/       pytest: parsing, framing, dedup, store
├── ios/
│   ├── IDeviceTailKit/     Swift Package: OSLogStore reader, Bonjour, framed TCP client, reconnect
│   └── IDeviceTailAgent/   SwiftUI app that hosts the SDK (XcodeGen project)
├── scripts/         setup / run / pairing helpers (PowerShell + sh)
├── start.bat / stop.bat / hub.json   project-hub integration
└── pyproject.toml

Platform support

macOS:    Full      (Engine A wireless incl. iOS 17.4+ firehose via remoted; Engine B; wireless app install)
Windows:  Partial   (Engine A: full ≤ iOS 17.3 over Wi-Fi, syslog-only for 17.4+ over Wi-Fi; Engine B full)
Linux:    Partial   (same as Windows)

See docs/COMPATIBILITY.md for the capability matrix.

License

MIT (this project). Engine A shells out to pymobiledevice3 (GPL‑3.0) as a separate process; it is an optional dependency you install yourself.

Metadata

Release files for iDeviceTail 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iDeviceTail 0.1.0
File Size Uploaded
idevicetail-0.1.0.tar.gz 91.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iDeviceTail 0.1.0
File Interpreter ABI Platform
idevicetail-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 151.6 kB

Release files / idevicetail-0.1.0.tar.gz

Download URL idevicetail-0.1.0.tar.gz
Size 91.0 kB
Tags Source
SHA-256 checksum
How to use checksums
755dde20d0184f464c77bf92ae3250563cb91dc48b9fc6dedf613401cbd386dd
BLAKE2b-256 checksum
How to use checksums
2e0e7e60de9baa32139e4e0c712259cf7efd6fe47b693d395c9ac01783588b74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Release files / idevicetail-0.1.0-py3-none-any.whl

Download URL idevicetail-0.1.0-py3-none-any.whl
Size 60.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
35fd91f60cad717711bc9683063438e9b55dc680c4aac508933b908f968d75c6
BLAKE2b-256 checksum
How to use checksums
f901424501cf29aa21e5d3e0f05d5fb13a8d4fb51bd61af1fac8aedb40621661
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page