100% Offline. Privacy by Design.

Diagnostics that ship
inside your app

Inspect and edit app state during development. One-tap diagnostic export for internal testing, QA, and closed beta groups. Storage, exceptions, breadcrumbs, logs. Everything captured into a single .devlens file and analyzed in the companion macOS app.

Coming soon to GitHub
$ .package(url: "devlens", from: "1.0.0")
AppDelegate.swift
1import DevLens23func application(_ app: UIApplication) -> Bool {4    // Dev mode: full interactive inspector5    DevLens.start(mode: .developer)67    // Production: one-tap .devlens export8    DevLens.start(mode: .user)910    return true11}
Privacy First

Your data never leaves the device

DevLens is 100% offline. No servers, no accounts, no tracking. The perfect tool for internal user testing, QA sessions, closed beta groups, and developers debugging issues on real devices.

Zero network calls

DevLens never opens a socket. No telemetry, no analytics, no crash-report uploads. Your diagnostic data stays on the device that created it.

Privacy by design

There is no server to compromise. DevLens has no backend, no API keys, no cloud dashboard. The architecture makes data leaks impossible.

100% on-device

Every log, breadcrumb, and storage snapshot lives in sandboxed app storage. Nothing is persisted outside your app's container.

Companion macOS app

When a user shares a .devlens file, open it in the companion macOS app for full analysis. The file never touches a third-party server.

Everything you need to diagnose anything

One library. Two modes. Full diagnostic coverage from development through production.

Interactive Inspector

Browse your entire app state at runtime. Views, storage, network, and more — all from an overlay you shake to open. Runs entirely on-device.

.devlens Export

Users tap once to capture the full diagnostic snapshot into a local file. Open and analyze it in the companion macOS app — no cloud upload required.

Exception Capture

Catch and store uncaught exceptions and assertion failures with full stack traces. Everything stays on-device until explicitly shared.

Storage Snapshots

UserDefaults, Keychain entries, Core Data stores, and file-system state — all captured locally and diffable across sessions.

Breadcrumb Trail

Automatic navigation and lifecycle breadcrumbs so you can retrace exactly what the user did before the issue. Never sent to a server.

Unified Log Stream

Consolidates os_log, print, and NSLog output into one searchable, filterable stream. All processing happens on-device.

Nothing else bridges both worlds

FLEX is dev-only. Sentry is production-only and sends data to external servers. DevLens works in both contexts — fully offline, with zero data collection.

FeatureDevLensFLEXSentry
Dev-time inspector
Production diagnostics
Single library for both
User-facing export
100% offline
No external server
Zero data collection
Privacy by design

Every Apple platform. One library.

Including Mac Catalyst. Add DevLens via Swift Package Manager and it works everywhere.

iOS 15+
macOS 13+
iPadOS 15+
tvOS 15+
watchOS 8+
visionOS 1+