Identity-first autofill with local audit trail and staleness detection. No passphrase, all data stays on device.
Users
3
−1 in 30 days
Rating
0.0 / 5
unchanged in 30 days
Ratings
0
0 in 30 days
Store rank
#305K
#246K among extensions
Version
0.7.7
updated 13 Sep 2026
Users
monthly, 3 months
Latest, 15 Oct 2026:3 usersMove the mouse over the chart for any month
Ratings count
monthly, 3 months
Latest, 15 Oct 2026:0 ratingsMove the mouse over the chart for any month
The Chrome Web Store rounds user counts down to the leading digit, so the user line moves in steps. The ratings count is exact and is the better signal of real adoption.
About Shadow Form Filler
Shadow Form Filler is a privacy-respecting browser extension for people
who want autofill that actually stays on their computer.
Every byte of your identity data — name, address, phone, employment,
preferences — is encrypted on your device and never leaves it. The
extension has no server. It does not phone home. It does not collect
analytics. When you fill a form, the value travels directly from your
encrypted storage to the form on the page you are looking at. There is
no middleman because there is no middleman to be.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHAT YOU GET
• Encrypted identity profiles
Create as many profiles as you need — Personal, Work, Family, a
contractor alias, anything. Each profile is encrypted with a
device-bound key generated on first launch. There is no passphrase
to forget, no cloud account to lose, and no recovery option that
could be abused by an attacker.
• Confirm before every fill
A clear modal lists every field the extension would touch, with the
source profile, before anything is written. You can edit, deselect,
or cancel. The extension never auto-submits. The page's submit
button is yours to press. The "Filling on <site>" card is sticky so
you never lose sight of which site you are filling.
• Per-site QuickFill rules
Mark a site as "always auto-fill with my Personal profile" and the
modal is skipped on subsequent visits. High-sensitivity fields are
never auto-approved — you always get a confirmation prompt for
them, even on a QuickFill site. The rule is off by default. You
have to opt in to persistence.
• 100% form coverage (across 28 real-world shapes)
Tested against LinkedIn, Indeed, KYC onboarding, Stripe-style
payments, EU tax forms, Jotform templates (including the for=id
collision case where multiple labels point at the same input),
Material UI floating labels, multi-step wizards, fieldsets with
legends, datalists, maxlength constraints, date-of-birth splits,
iFrame-embedded forms, and more. Every test in the bundled
coverage suite passes.
• Profile freshness indicator
Each profile in the switcher dropdown shows when it was last
updated ("3 fields · updated 2h ago"). When you have several
profiles, the freshest one is one glance away.
• Local audit log
Every fill is logged with site, timestamp, fields, sensitivity, and
whether you edited the value after. The log is encrypted. You can
search, filter by sensitivity, filter by outcome (edited / not
edited), and export it as JSON or CSV at any time. It is your data,
in a file you can open and read.
• Staleness detection
If a profile hasn't been used in a while, the extension nudges you
to confirm it is still accurate. The Home view shows a banner when
any field is hard-stale and would be blocked from filling. This
catches the situation where a credit card expires, you move, or a
phone number changes and you forget to update your autofill.
• Cmd+K command palette
The extension has a keyboard-first command palette. Press Cmd+K
(macOS) or Ctrl+K (Windows / Linux) to navigate to any view,
switch profile, or trigger a fill without leaving the keyboard.
• Optional AI, by your key
The extension has two AI features, both of which are completely
optional and require a key you provide yourself. The master AI
toggle is off by default. When you turn it on, the extension can:
– ask the AI to disambiguate a field label the heuristic matcher
is unsure about (only the field's label, name, and placeholder
are sent — never the value you have entered);
– parse a pasted chunk of text into structured fields in the
profile editor (only the text you paste is sent, only the
fields in the schema are returned, and a prompt-injection
attempt that asks the model to return extra fields is rejected
by an allow-list).
When the toggle is off, the heuristic matcher handles every field
locally and no network request to the LLM is made. You can verify
this by opening the network tab while using the extension.
Supported providers: OpenAI, Anthropic, and a third option. Your
key is stored encrypted, never logged, never sent anywhere except
the provider you chose.
• Refuses to be tricked
The matcher explicitly refuses to fill any field with an autocomplete
token for credit cards, passwords, one-time codes, usernames, or
financial transactions — even if the field's visible label says
something innocent like "Cardholder name". A malicious form cannot
trick the extension into filling a credit card field. The refusal
is hard-coded; there is no setting to disable it.
• EEO disclosures intentionally excluded
Race, veteran, disability, and ethnicity fields are not in the
schema. The extension can never accidentally auto-fill an
EEO (Equal Employment Opportunity) disclosure.
• Source-readable
The extension is not minified. Every line of TypeScript is human-
readable. Start at src/background/service-worker.ts. The trust
contract is the code, not this description.
• Liquid-glass UI
Built with the macOS Liquid Glass aesthetic. Light and dark mode
both look right. Honors prefers-reduced-motion and
prefers-reduced-transparency for users with vestibular or visual-
processing sensitivities.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHAT THE EXTENSION DOES NOT DO
• It does not auto-submit forms. You always press the page's submit
button yourself.
• It does not fill password fields.
• It does not fill credit card numbers, CVV, or expiration dates.
• It does not fill bank account or wire transfer fields.
• It does not collect analytics, telemetry, crash reports, or
anything else. Zero.
• It does not read your browsing history.
• It does not sync your data to a cloud.
• It does not run third-party scripts.
• It does not download remote code. All JavaScript is bundled at
build time and shipped with the extension.
• It does not have a backend that could leak your data, because
i…