Browser extension
Choose an fd0 login beside a credential field to fill it without submitting the form. The extension also generates passwords, explicitly saves or revision-updates logins, accepts pasted otpauth://setup links, and fills fresh TOTP codes.
Connect the extension to fd0
Install the current fd0 Desktop or CLI before adding the extension. New installers register the local Native Messaging host automatically. If fd0 was installed earlier, register it once:
$ fd0 browser enable
Unlock fd0, focus a username or password field on an HTTPS page, and choose the matching fd0 item. The field button reopens the picker; the toolbar action selects one concrete frame with a visible credential field.
Build a development copy
Clone the fd0 repository, then build the unpacked Manifest V3 extension, the CLI, and its dedicated Native Messaging host.
$ cd browser $ bun install --frozen-lockfile $ bun run typecheck $ bun test $ bun run build $ cd .. $ go build -o .build/browser/fd0 ./cmd/fd0 $ go build -o .build/browser/fd0-browser-host ./cmd/fd0-browser-host $ .build/browser/fd0 browser enable \ --host .build/browser/fd0-browser-host
Open chrome://extensions or chromium://extensions, enable Developer mode, choose Load unpacked, and select browser/dist. The browser must show extension id flkmmllfacmjnhjgdfliahdkhfjmdoec.
Create a login for testing
$ fd0 pass add demo --url https://example.com $ fd0 pass field set demo username ada@example.com $ fd0 pass field set demo password --secret --generate $ fd0 unlock
Existing HTTPS tabs reconnect after an extension update without a manual reload.
Only matching item metadata crosses into the extension before selection: opaque references, titles, usernames, vault labels, revisions, and whether a TOTP is available. The password is requested from the local agent after selection, and fd0 checks the HTTPS origin again before filling the same browser document.
Disconnect fd0 from Chrome
$ fd0 browser disable
This removes only fd0's Native Messaging manifest. Remove the Store or unpacked extension separately from chrome://extensions. Neither action removes your vault.
If the picker does not appear
Unlock fd0, confirm the page uses HTTPS, and check that the browser still shows the extension id above. If more than one saved account could be updated, choose the intended login explicitly. HTTP pages remain unsupported. Firefox is not supported yet.