Snap Firefox starts the helper through the desktop portal, which reads the manifest from ~/.mozilla or /usr/lib/mozilla. The .deb and .rpm now install the manifests system-wide, and install.sh detects snap Firefox. Co-Authored-By: Claude Opus 5.5 <[email protected]>
2.1 KiB
Native messaging manifests
install.sh (Linux, macOS) and install.ps1 (Windows) fill in the placeholders and register the
manifests for the current user. Chrome allows two ids by default: the Chrome Web Store build
(pmhfoafjoogobhfadaicklhkldgnafmk) and the unpacked development build, pinned to
kogapfibnnpeapfcjkkpgjddbhnjfein by the manifest key in kestrove-browser. Firefox uses [email protected].
Pass --chrome-id a,b / -ChromeId a,b to allow other ids instead.
native-messaging/install.sh # every browser with a profile dir, host from target/
native-messaging/install.sh --browsers chrome --nmh /opt/kestrove/kestrove-nmh
native-messaging/install.sh --user-data-dir /tmp/profile # a Chromium started with --user-data-dir (tests)
native-messaging/install.sh --uninstall
| Browser | macOS (dev only; the Apple app ships its own host) |
|---|---|
| Chrome | ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/ |
| Edge / Brave / Chromium | ~/Library/Application Support/{Microsoft Edge,BraveSoftware/Brave-Browser,Chromium}/NativeMessagingHosts/ |
| Firefox | ~/Library/Application Support/Mozilla/NativeMessagingHosts/ |
| Browser | Linux | Windows |
|---|---|---|
| Chrome | ~/.config/google-chrome/NativeMessagingHosts/app.kestrove.nmh.json |
HKCU\Software\Google\Chrome\NativeMessagingHosts\app.kestrove.nmh → path to json |
| Edge | ~/.config/microsoft-edge/NativeMessagingHosts/ |
HKCU\Software\Microsoft\Edge\NativeMessagingHosts\app.kestrove.nmh |
| Firefox | ~/.mozilla/native-messaging-hosts/app.kestrove.nmh.json |
HKCU\Software\Mozilla\NativeMessagingHosts\app.kestrove.nmh |
| Brave | ~/.config/BraveSoftware/Brave-Browser/NativeMessagingHosts/ |
same key as Chrome |
The Linux .deb and .rpm install these manifests system-wide (src-tauri/linux/), so they need no script. That
covers snap Firefox too: it can't start the host itself, so the desktop portal does, after asking the user once.
AppImage users run install.sh.
allowed_origins / allowed_extensions pin the host to your extension id.
That is the first line of defense against other extensions (docs/04 A8).