Shadow Form Filler
Overview
Identity-first autofill with local audit trail and staleness detection. No passphrase, all data stays on device.
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 it does not have a backend. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ If you find a form the extension misidentifies, a field it refuses to fill that it should, or a corner case the test suite misses, please open an issue. The project is open source and the matcher is data-driven — adding a new label pattern is a one-line change.
0 out of 5No ratings
Details
- Version0.7.6
- UpdatedSeptember 10, 2026
- Offered byVeeme Media
- Size276KiB
- LanguagesEnglish
- Developer
Email
info@saasmaster.net - Non-traderThis developer has not identified itself as a trader. For consumers in the European Union, please note that consumer rights do not apply to contracts between you and this developer.
Privacy
This developer declares that your data is
- Not being sold to third parties, outside of the approved use cases
- Not being used or transferred for purposes that are unrelated to the item's core functionality
- Not being used or transferred to determine creditworthiness or for lending purposes
Support
For help with questions, suggestions, or problems, please open this page on your desktop browser