IT Mass Deployment (Store)
Audience: IT and endpoint administrators deploying Pyze to all client machines, with the extension installed from the Chrome Web Store, or from Edge Add-ons where Pyze has published an Edge listing for your organization.
The native host is a small local helper that reads the signed-in OS username and hands the extension a hashed identifier (see Privacy note).
Two components go to every machine:
| Component | Deployed how |
|---|---|
| Native host (binary + preconfigured manifest) | Copy to a fixed path and register (Step 1) |
| Extension | Force-installed from the store via your usual browser policy (Step 2) |
If the extension cannot be installed from the store in your environment, use the non-store guide instead.
Step 1: Deploy the Native Host (Machine-Wide)
There is a separate package per OS: pyze-native-host-<customer>-windows.zip and pyze-native-host-<customer>-macos.zip. Each ships the binary, the installer, and a ready-to-use com.pyze.host.json with allowed_origins set and the fixed install path baked in. Use the one for the target OS: place the files and register.
Package the steps below for Intune, SCCM, or Jamf and run with system rights.
Lay down the files to the fixed path, then register the manifest for both browsers:
:: Copy (via your packaging tool):
:: pyze-native-host-win-x64.exe -> C:\Program Files\Pyze\pyze-native-host-win-x64.exe
:: com.pyze.host.json -> C:\Program Files\Pyze\com.pyze.host.json
reg add "HKLM\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.pyze.host" /ve /t REG_SZ /d "C:\Program Files\Pyze\com.pyze.host.json" /f
reg add "HKLM\SOFTWARE\Microsoft\Edge\NativeMessagingHosts\com.pyze.host" /ve /t REG_SZ /d "C:\Program Files\Pyze\com.pyze.host.json" /f
Locked-down images: Citrix, VDI, AppLocker, EDR
Chrome and Edge launch Windows native hosts through cmd.exe by default. If your image blocks that launch under the browser, the registration is correct and the files are in place, but the host never runs and events arrive without a userId. Set this policy alongside the registration so the browser starts the .exe directly (Chrome 120+, Edge 121+):
reg add "HKLM\SOFTWARE\Policies\Google\Chrome" /v NativeHostsExecutablesLaunchDirectly /t REG_DWORD /d 1 /f
reg add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v NativeHostsExecutablesLaunchDirectly /t REG_DWORD /d 1 /f
On published desktops deliver it with Group Policy or a Citrix WEM registry action, not a manual reg add on a non-persistent host, which is lost at reboot. Details and the diagnostic steps are in Native Host Troubleshooting.
Create the folders, place the binary at the fixed path, then copy com.pyze.host.json into the system NativeMessagingHosts folders. No registry is involved.
# Create the folders; none of them exist on a fresh Mac
mkdir -p "/Library/Application Support/Pyze" \
"/Library/Google/Chrome/NativeMessagingHosts" \
"/Library/Microsoft/Edge/NativeMessagingHosts"
install -m 755 pyze-native-host-macos-arm64 "/Library/Application Support/Pyze/pyze-native-host"
xattr -d com.apple.quarantine "/Library/Application Support/Pyze/pyze-native-host" 2>/dev/null || true
# Register the manifest for both browsers
cp com.pyze.host.json "/Library/Google/Chrome/NativeMessagingHosts/"
cp com.pyze.host.json "/Library/Microsoft/Edge/NativeMessagingHosts/"
Use pyze-native-host-macos-x64 for Intel Macs.
Step 2: Push the Extension
Force-install the extension with your standard browser policy. Pyze gives you the store extension ID (or IDs) with the native host package. The native host manifest already trusts every ID Pyze has published for your organization, so the extension connects to it automatically.
Add one entry to ExtensionInstallForcelist per browser:
| Browser | Installs from | Policy value |
|---|---|---|
| Chrome | Chrome Web Store | <chrome-store-id> |
| Edge | Edge Add-ons (when Pyze has an Edge listing) | <edge-addons-id> |
| Edge | Chrome Web Store (no Edge listing) | <chrome-store-id>;https://clients2.google.com/service/update2/crx |
Where to set it:
| Browser | Policy |
|---|---|
| Chrome | ExtensionInstallForcelist. GPO: Google Chrome › Extensions › Configure the list of force-installed apps and extensions. Registry: HKLM\SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist, value 1 |
| Edge | ExtensionInstallForcelist. GPO: Microsoft Edge › Extensions › Control which extensions are installed silently. Registry: HKLM\SOFTWARE\Policies\Microsoft\Edge\ExtensionInstallForcelist, value 1 |
| macOS | MDM profile key ExtensionInstallForcelist (array) in com.google.Chrome and com.microsoft.Edge |
Verify on a client: open chrome://policy (Edge: edge://policy) and click Reload policies. The entry should be listed without error, and the extensions page should show Pyze <Customer> with the label Installed by your organization.
Verify the Native Host on a Client
Open chrome://extensions (Edge: edge://extensions), turn on Developer mode, click service worker under Pyze <Customer>, and reload the extension. The console should show Pyze: Native config loaded followed by User Hash: <string>.
On managed machines the service worker link is hidden until the DeveloperToolsAvailability policy is 1 under HKLM\SOFTWARE\Policies\Google\Chrome (and ...\Microsoft\Edge for Edge). On Citrix published desktops push that value with Group Policy or a Citrix WEM registry action, as a manual change on a non-persistent host is lost at reboot. Remove it again when you are done.
Any other message means the native host is not working. Native Host Troubleshooting maps each console message (not found, forbidden, Failed to start) to its cause and fix.
Updates and Uninstall
Extension: auto-updates from the store. Nothing to push.
Native host: to update, replace the binary at the install path. The preconfigured manifest does not change.
Uninstall extension: delete the force-install entry. The browser removes the extension at the next policy refresh.
Uninstall (Windows): run the following, then remove C:\Program Files\Pyze\:
reg delete "HKLM\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.pyze.host" /f
reg delete "HKLM\SOFTWARE\Microsoft\Edge\NativeMessagingHosts\com.pyze.host" /f
Uninstall (macOS): delete the two com.pyze.host.json files and the binary.
Privacy Note
The native host reads the OS username and sends only a SHA-256 hash of it. The username itself is never sent. The hash is a stable pseudonymous identifier, so the same user gets the same ID on every machine.