There&#x27;s some detailed documentation here <a href="https:&#x2F;&#x2F;developer.chrome.com&#x2F;extensions&#x2F;nativeMessaging" rel="nofollow">https:&#x2F;&#x2F;developer.chrome.com&#x2F;extensions&#x2F;nativeMessaging</a> and a sample app (for Chromium) here <a href="https:&#x2F;&#x2F;chromium.googlesource.com&#x2F;chromium&#x2F;src&#x2F;+&#x2F;master&#x2F;chrome&#x2F;common&#x2F;extensions&#x2F;docs&#x2F;examples&#x2F;api&#x2F;nativeMessaging" rel="nofollow">https:&#x2F;&#x2F;chromium.googlesource.com&#x2F;chromium&#x2F;src&#x2F;+&#x2F;master&#x2F;chro...</a><p>Essentially you need to add a native messaging app manifest to Chrome to tell it about the app on the host, and then Chrome reads that JSON file to find where to execute it, what to use to talk to it (eg stdio), what it&#x27;s called, etc. On Windows the location of the JSON file has to be added to the registry (which is prohibitively annoying), but on OSX and Linux it&#x27;s just saved in a specific folder. Once you&#x27;ve done that it&#x27;s a simple case of calling a method on the chrome.runtime object, or setting up a couple of listeners to actually make the call.