instaDM is a personal, iPhone-only SwiftUI shell around Instagram Web's messaging experience. It keeps one persistent WKWebView, opens directly to Direct messages, permits exact-username profiles and following, and blocks feed/discovery routes.
- macOS with Xcode 26.5
- iPhone running iOS 26.0 or newer
- An Apple Account added to Xcode
- iPhone Developer Mode enabled
- Open
InstaDM.xcodeprojin Xcode. - Select the InstaDM target, open Signing & Capabilities, and choose your Personal Team.
- Connect and trust the iPhone, select it as the run destination, then press Run.
- A free Personal Team profile normally needs to be rebuilt after about seven days.
Instagram credentials are entered only in Instagram's own HTTPS page inside WebKit. The app has no backend, analytics, private Instagram API, or message database.
- No push notifications, background inbox connection, or app badge.
- Messaging features exist only when Instagram exposes them in its mobile website.
- Only one Instagram session is supported.
- Account lookup requires an exact username or Instagram profile URL.
- The app is intended for personal Xcode installation, not App Store distribution.
- Shared Reels presented inside Direct are detected geometrically, expanded to the safe-area viewport, and protected against vertical progression into suggestions.
- Forwarding uses Instagram's own recipient picker. No search text, recipient, message, or media URL crosses the WebKit bridge.
See Physical device validation before treating a build as ready for daily use.