CLI commands
rndl open
Open a deep link on an iOS simulator or Android device, from a full URL or built from a route in your app's route table.
rndl open fires a deep link on a running simulator or device. Pass a full URL, or a route
name/pattern that rndl fills in from your route table and app scheme.
rndl open exampleexporouter://users/42 # a full URL, wherever a device runs
rndl open '/users/:id' --app-dir src/app --params id=42 # build the URL from an Expo Router route
rndl open HomeTabs/Feed/Article --config src/navigation/linking.ts --params slug=hi
rndl open https://example.com/users/42 --platform ios --device "iPhone 17 Pro"URL mode vs route mode
If the target contains :// it is treated as a full URL and fired as-is. Anything else is looked
up in your route table (auto-detected like rndl routes), and the URL is built from the route
pattern and your --params. A missing required param errors before any device is touched.
The scheme for route mode is resolved in order: --scheme, then your React Navigation prefixes,
then your app.json scheme.
Platform semantics
With no --platform, open fires on every platform that has a device: a booted iOS simulator
(via xcrun simctl) and any adb device or emulator. It exits 0 if at least one platform opened
the link; a platform with no device is a note, not a failure.
Naming --platform ios, --platform android, or --platform both makes that platform required:
no device there is now an error.
Flags
| Flag | Description |
|---|---|
--params <k=v...> | Route params for route mode, e.g. --params id=42 tab=home. |
--platform <ios|android|both> | Require a specific platform instead of firing wherever a device runs. |
--device <id> | Simulator UDID/name or adb serial. Requires an explicit --platform. |
--scheme <scheme> | URL scheme or prefix for route mode. |
--app-dir <dir> | Expo Router app directory for the route lookup. |
--config <module[#export]> | React Navigation linking module for the route lookup. |
--package <name> | Android package that should receive the intent. |
Errors are actionable: no booted simulator, an unknown scheme, or an app that does not handle the URL each tell you what to do next, not just what broke.