🖥️

Integrating with Desktop Apps via Custom URL Schemes

Operating systems allow applications to register a custom URL scheme (as opposed to, e.g., https://). Applications (including the Web Browser) can use this to deep-link into and perform actions in other desktop applications

Some popular productivity applications supporting URL schemes:

Using a Custom URL Scheme

To use a custom URL scheme, you can use the @pixiebrix/browser/open-tab brick just like with a normal URL

Depending on the application, you may need to specify a different encoding for spaces URL query parameters using the spaceEncoding. For most cases, the default %20 encoding is what's expected. But you may need to use + in some cases.

Advanced: Disable Browser Confirmation

⚠️

By disabling the confirmation, a malicious site could trick you into performing an action in a desktop application. That being said — most applications do not expose destructive actions via URL schemes for this reason

When you try to navigate to a link with a custom URL scheme, Chrome will prompt you to open the application:

image

If you're trying to trigger a lot of actions, that can become tedious. Here are some steps for disabling the confirmation in Chrome.

MacOS

  1. Open the terminal
  2. In the prompt, enter the following with the URL scheme for the application you're using. For example, the Drafts URL scheme is drafts://, so we'd enter:
  3. defaults write com.google.Chrome URLAllowlist -array-add 'drafts://*'
  4. Restart Chrome

Desktop Developer Resources