Skip to content

Begin typing to search this documentation.

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.

Terminal window
historia-collect install --browser chrome

Configure several browsers in one operation:

Terminal window
historia-collect install \
--browser chrome \
--browser firefox

The JSON response includes the native-host manifest path, executable or launcher path, extension identity, unpacked extension directory, browser extensions page, and post-install checks.

Chromium-family browsers derive the same extension ID on every machine from the public key committed in extension/manifest.json:

idfjphfgkpmmgggnbomlalheckgdcefj

Firefox uses:

Each native-host manifest permits exactly one of these identities. Unrelated extensions cannot invoke the host through that registration.

  1. Open the extensions page reported by the installer.

    Browser Page
    Chrome / Chromium chrome://extensions
    Brave brave://extensions
    Microsoft Edge edge://extensions
    Firefox about:debugging#/runtime/this-firefox
  2. Enable developer mode where required.

  3. Choose Load unpacked and select the extension directory from the installer output. Firefox uses Load Temporary Add-on while the extension remains unpacked.

  4. 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.

  5. 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.

Terminal window
historia-collect doctor --browser chrome

The 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.

The installer chooses the native host in this order:

  1. --host-path <absolute-path>;
  2. HISTORIA_COLLECT_HOST;
  3. a compiled historia-collect-host beside the running executable;
  4. dist/historia-collect-host inside the package;
  5. 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.

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.
Terminal window
historia-collect uninstall \
--browser chrome \
--browser firefox

This removes the selected manifests and Windows registry entries. It does not delete the Git vault, SQLite index, imported conversations, or extension settings.

Use an explicit host path when Homebrew, a system package, or another installer owns executable placement:

Terminal window
historia-collect install \
--browser chrome \
--host-path /opt/historia/bin/historia-collect-host

The lower-level generator remains available:

Terminal window
historia collect native-manifest \
--browser chrome \
--extension-id idfjphfgkpmmgggnbomlalheckgdcefj \
--host-path /absolute/path/to/historia-collect-host \
--output /tmp/ai.greenways.historia_collect.json