Install the browser bridge
The historia-collect installer connects the unpacked browser extension to the
local native-messaging host. It discovers or creates the executable path, writes
the browser manifest, limits it to Historia’s stable extension identity, and
verifies the resulting registration.
Install
Section titled “Install”historia-collect install --browser chromehistoria-collect install --browser chromiumhistoria-collect install --browser bravehistoria-collect install --browser edgehistoria-collect install --browser firefoxConfigure several browsers in one operation:
historia-collect install \ --browser chrome \ --browser firefoxThe JSON response includes the native-host manifest path, executable or launcher path, extension identity, unpacked extension directory, browser extensions page, and post-install checks.
Stable identities
Section titled “Stable identities”Chromium-family browsers derive the same extension ID on every machine from the
public key committed in extension/manifest.json:
idfjphfgkpmmgggnbomlalheckgdcefjFirefox uses:
Each native-host manifest permits exactly one of these identities. Unrelated extensions cannot invoke the host through that registration.
Load the unpacked extension
Section titled “Load the unpacked extension”-
Open the extensions page reported by the installer.
Browser Page Chrome / Chromium chrome://extensionsBrave brave://extensionsMicrosoft Edge edge://extensionsFirefox about:debugging#/runtime/this-firefox -
Enable developer mode where required.
-
Choose Load unpacked and select the extension directory from the installer output. Firefox uses Load Temporary Add-on while the extension remains unpacked.
-
Review the collection disclosure. Firefox 140 or newer presents built-in consent for rendered page identity, chat messages, and visible website content transferred to the local native host.
-
Open the Historia Collect popup and choose Check connection.
A successful check crosses the native-messaging boundary and confirms that the extension identity, browser manifest, executable, and host protocol agree.
Diagnose
Section titled “Diagnose”historia-collect doctor --browser chromeThe diagnostic exits non-zero when any requested registration is invalid. It checks that:
- the manifest exists and parses;
- the host name is
ai.greenways.historia_collect; - the extension allowlist is exact;
- the referenced host exists and is executable;
- the Windows current-user registry entry exists where applicable;
- the unpacked extension directory is available.
Host resolution
Section titled “Host resolution”The installer chooses the native host in this order:
--host-path <absolute-path>;HISTORIA_COLLECT_HOST;- a compiled
historia-collect-hostbeside the running executable; dist/historia-collect-hostinside the package;- on macOS and Linux, an owner-only launcher using the absolute Bun runtime and package-native entry path.
Windows requires a compiled historia-collect-host.exe or an explicit
--host-path.
Registration locations
Section titled “Registration locations”The installer uses standard user-scoped locations and does not require administrator privileges:
| Platform | Registration |
|---|---|
| macOS | Browser NativeMessagingHosts directory beneath ~/Library/Application Support. |
| Linux | Browser directory beneath ~/.config; Firefox uses ~/.mozilla/native-messaging-hosts. |
| Windows | Manifest beneath %LOCALAPPDATA%\Historia and a browser-specific HKCU registry entry. |
Remove the bridge
Section titled “Remove the bridge”historia-collect uninstall \ --browser chrome \ --browser firefoxThis removes the selected manifests and Windows registry entries. It does not delete the Git vault, SQLite index, imported conversations, or extension settings.
Packaging-system integration
Section titled “Packaging-system integration”Use an explicit host path when Homebrew, a system package, or another installer owns executable placement:
historia-collect install \ --browser chrome \ --host-path /opt/historia/bin/historia-collect-hostThe lower-level generator remains available:
historia collect native-manifest \ --browser chrome \ --extension-id idfjphfgkpmmgggnbomlalheckgdcefj \ --host-path /absolute/path/to/historia-collect-host \ --output /tmp/ai.greenways.historia_collect.json