Network DevTools,
inside your iOS app.
Pry intercepts every URLSession request and gives you a full debugging suite —
inspect, mock, breakpoint — without proxies, certificates, or a Mac.
Why Pry?
Traditional proxy tools require complex setup, certificates, and a Mac. Pry lives inside your app — zero friction.
No proxy config
Pry intercepts traffic automatically via URLProtocol. Add one SwiftUI modifier and you are done.
Configure proxy settings on each device, manage PAC files, deal with port conflicts.
No Mac needed
Debug directly on the device or simulator. Pry runs entirely inside your app — no companion Mac process.
Requires a Mac running the proxy application. Debugging on a physical device away from your desk? Out of luck.
No certificates
Zero certificate installation. No trust profiles, no CA roots, no expiring certs to rotate.
Install and trust a root CA certificate on every device. Certs expire, break certificate pinning, and may pose security risks.
Works everywhere
Cellular, VPN, corporate Wi-Fi, hotspot — Pry intercepts at the URLSession level, so the network type does not matter.
Only works on the same Wi-Fi network as the proxy. Cellular traffic, VPNs, and enterprise networks are invisible.
Everything you need, on device
A full debugging suite that lives inside your app. No external tools, no context switching.
Network Inspector
Captures every URLSession request automatically via URLProtocol injection. Works with Alamofire, Kingfisher, Firebase, and any third-party SDK out of the box.
- Color-coded method badges and status codes
- Response size and timing at a glance
- Search, filter by method/status, sort by time
- cURL export for any request
Request Detail
Drill into any request for the full picture. Timing waterfall, headers, body preview with syntax highlighting, JWT decoding, and redirect chain visualization.
- Timing breakdown: DNS, TLS, connect, TTFB
- JSON body with syntax highlighting
- JWT token auto-decoding
- Redirect chain visualization
GraphQL Awareness
Pry detects GraphQL queries, mutations, and subscriptions automatically. Surfaces the operation name, variables, and highlights response errors — no more digging through raw JSON.
- Auto-detects query, mutation, subscription
- Shows operation name prominently
- Variables and response errors surfaced
- Works with any GraphQL client
Console & App Hub
Structured console with color-coded log levels and file/line metadata. Plus a full App Hub — cookies, UserDefaults, device info, and permissions dashboard in one place.
- Log levels: info, success, warning, error, debug
- File, function, and line metadata
- Cookies and UserDefaults browser
- Device info and permissions dashboard
100% on-device.
Zero data leaves your app.
Pry has no servers, no accounts, no analytics, and no tracking. Every intercepted request, every log entry, every piece of data stays on your phone and is never transmitted anywhere. The only network traffic Pry creates is the traffic your app is already making.
Add it in 30 seconds
Three steps. No configuration files, no build phases, no scripts.
-
1
Add the package
dependencies: [ .package(url: "https://github.com/9alvaro0/Pry.git", from: "1.0.0") ] -
2
Attach the modifier
import Pry @main struct MyApp: App { @State private var store = PryStore() var body: some Scene { WindowGroup { ContentView() .pry(store: store) } } } -
3
Tap the ladybug
A floating action button appears on top of your app. Tap it to open the inspector. That is it — no proxy, no certificates, no configuration.
Free forever, or upgrade for more
Pry Free covers everything most apps need. Pry Pro adds advanced tooling for serious debugging and QA workflows.
Pry Free
$0
MIT licensed, forever.
- Network monitor, detail view, timing breakdown
- GraphQL awareness
- Console logs with types
- Deeplinks & push capture + simulators
- Cookies, UserDefaults, device info
- cURL export
- Floating button, shake gesture, embedded mode
Pry Pro
$49 /one-time
Lifetime license, single developer. $79 after launch.
- Everything in Free
- Breakpoints — pause and edit requests or responses on the fly
- Mock responses — return fake JSON without touching the server
- Replay — re-send any captured request
- Request diff — compare two requests side by side
- Network throttle — Slow 3G, Fast 3G, Lossy, Offline
- Performance metrics — live CPU / memory / FPS charts
- Session export — Postman Collection & HAR
- Protobuf decoder — raw decode without .proto
You will be asked for your GitHub username during checkout. We add you as a read-only collaborator on the private PryPro repository within seconds of purchase.
Frequently asked questions
Is Pry Pro a subscription?
No. Pry Pro is a one-time purchase. You get lifetime access to the current major version and all minor and patch releases within it. Future major versions may require an upgrade.
Can I use Pry Pro on multiple projects?
Yes. A single-developer license covers unlimited projects built by the license holder. If you work in a team, each developer needs their own license.
What happens if I lose my GitHub access to PryPro?
Email hello@prytool.dev with your purchase receipt and we will re-add you. Access is tied to your purchase, not to a time-limited token.
Refund policy?
Full refund within 14 days of purchase, no questions asked. Your repository access is revoked automatically on refund.
Can I see the Pro source code?
Yes. Pry Pro is distributed as source code, not a compiled binary. You can step-through debug, adapt it, and submit feedback. Redistribution is not allowed by the license.
Does Pry send any data to your servers?
No. Pry is entirely on-device. Nothing is ever sent to prytool.dev or anywhere else. The only network traffic Pry creates is the traffic you are already making.
Ready to debug smarter?
Add Pry to your project in under a minute. Free, open source, on-device.