A URI, from both ends
Edit the whole URI as text, or edit the scheme, host, port, path, fragment and query parameters as fields. Both directions stay in sync as you type, and the path's :variables get fields of their own.
Deeplink tooling for app teams
Type a URI or fill in its parts; Diver keeps the two in sync. Then open it where it actually has to open: this device, a booted simulator, a phone on your Wi-Fi, or any device signed in to your Diver account — and it tells you whether anything opened it.
The browser build runs today. The phone and desktop builds — the ones that receive links as well as send them — have not shipped yet.
Why
The URI lives in a ticket, the app that must open it is on someone else's desk, and the way in is a shell command with the scheme spelled right. So it gets pasted into notes, mangled by a chat client, and retyped on a phone keyboard.
Diver is the missing step between the two: one place to compose the URI, one button to open it wherever it needs to land, and a history of every URI that ever did.
Before
xcrun simctl openurl booted "diver://shop.example.com/products/5412?sort=price"
After
Fill in :productId, pick the device, press Send.
What it does
Diver is one app across iOS, Android, macOS and the browser, plus two small services that hold your team's organizations, apps and deeplink templates.
Edit the whole URI as text, or edit the scheme, host, port, path, fragment and query parameters as fields. Both directions stay in sync as you type, and the path's :variables get fields of their own.
A parameter is a string, a boolean or a list, and the editor matches: a text field, a switch, or chips you add values to. No more guessing whether the app wanted true or 1.
This device, a booted simulator, a connected Android, a phone on the same Wi-Fi, or a device signed in to your account from anywhere. Diver reports what the device did with the URI rather than that it was sent.
The last 50 URIs this device opened, newest first — tap to re-open, long-press to edit in the builder. Star the ones you run every day. All of it stays on the device.
Organizations, apps and deeplink templates live in your Diver account, with roles and invitations. Import an app's routes from a build with a CI key and everyone has them.
An https deeplink only opens the app if the domain serves Apple's apple-app-site-association and Android's assetlinks.json. Diver fetches both and says which of them is wrong, before you blame the code.
Screenshots
On a window, the URI and Send sit across the top, navigation is an icon rail down the left, and reachable devices are a dock down the right — so the URI never belongs to one screen. Tabs keep several in flight at once.
Pick an organization, pick an app, and its deeplinks are there — with their parameters declared, so the builder knows which are required and which are booleans. Switch the same template between environments, or between the custom scheme and the https Universal Link that addresses the same destination.
The phone build is the one that receives: leave it open and a URI sent from a desk opens on the handset you are holding.
Platforms
One codebase, four platforms. The browser can do everything except the half that receives a link — a tab has no raw sockets, no mDNS, and no way to authenticate a socket of its own. Where a feature cannot run, Diver hides it and says why.
| Feature | Phone & desktop | Browser |
|---|---|---|
| Building, launching and revisiting URIs | Yes | Yes |
| History and favourites | Yes | Yes SQLite compiled to WebAssembly, in the browser's own storage |
| Organizations, apps, deeplinks, members, CI keys | Yes | Yes |
| Sending to a device on your account | Yes | Yes |
| Sending via simctl / adb | Yes | No No process to run |
| Sending and being found over the LAN | Yes | No No raw sockets, no mDNS |
| Receiving links from your other devices | Yes | No A browser cannot set the header the socket authenticates with |
| Checking hosted link files | Yes | No Those files are served for Apple and Google, not for a web page |
| Sign in with Microsoft | Yes | Yes Through a popup rather than the OS browser |
Download
The browser build is live now and needs no install. The phone and desktop builds are what add the receiving half — the local network, and being reachable from your account.
Everything except receiving. Nothing to install, and it signs in to the same account.
Open app.usediver.com Chrome, Safari, Firefox and Edge.Receives links over your account and over the local network, and opens them with the OS. Not released yet — this card gets the link the day it is.
Download for mobile Coming soonThe desktop build, with simulator and adb sends, LAN discovery, and a window that holds several URIs in tabs.
Download for desktop Coming soon