🔒 Local-first · MV3 browser extension

Stop retyping the same details into every form.

Autofill Vault stores your name, address, education and logins once — then fills any form on any site with one click. No server. No sign-up. No cloud. Everything stays in your browser, on your machine.

1 clickto fill a whole page
0 serversdata never leaves your machine
22 field typesmatched automatically
careers.acme.io/apply
🔐 Autofill Vault
Try it — click ⚡ above
100% local storage No sign-up, no account Works on React & Vue sites Chrome · Edge · Brave Open source · MIT
What it does

A password manager's convenience — for everything else you keep retyping.

Built for anyone who lives in forms: job applications, checkouts, onboarding flows, the same five fields over and over.

One-click whole-page fill

Hit the toolbar button or Alt+Shift+F and every matching field on the page fills at once. Filled fields flash blue so you can see exactly what happened.

🧠

A real matching engine

It doesn't guess on field names alone. It scores each input on its autocomplete token, native type, label, placeholder and your own keywords — then fills the best match.

🗂️

Your vault, your structure

Personal, Address, Education, Professional — plus any category you add. Rename, recolour, drag-reorder, inline-edit. It autosaves as you type.

🔑

Logins, filled smartly

Save site / username / password and fill login forms — even multi-step ones, by finding the username field nearest the password input in document order.

🔒

Nothing leaves your machine

All data lives in chrome.storage.local on this profile only. No telemetry, no network calls, no account. Export an encrypted-free JSON backup whenever you want.

🌗

Polished, light or dark

Glassmorphism, an animated aurora, copy-to-clipboard on every field, and keyboard shortcuts. The kind of internal tool you'd actually enjoy opening.

Under the hood

Most "autofill" breaks on modern sites. This one doesn't.

The interesting engineering is the bit nobody sees: scoring fields, and convincing React it filled them itself.

1

Gather every signal

For each input it reads name, id, placeholder, aria-label, the linked <label>, data-testid and the autocomplete token — then normalises them into one searchable string.

2

Score the match

An autocomplete token match scores 100, a native type="email" scores 60, an exact label/synonym hit 25–50. The highest-scoring vault field above a threshold wins.

3

Fill it so frameworks believe it

Setting el.value doesn't update React/Vue state. So it calls the native value setter on the prototype, then dispatches real input/change events — exactly like a human typing.

4

Never clobber your work

Fields you've already typed into are skipped. <select> dropdowns are matched by option value or visible text. Then a toast tells you how many fields it filled.

content.js — the React-safe fill
// el.value = "…" won't update React's state.
// Call the prototype's native setter instead.
function setNativeValue(el, value) {
  const proto = Object.getPrototypeOf(el);
  const desc  = Object.getOwnPropertyDescriptor(proto, "value");
  if (desc && desc.set) desc.set.call(el, value);
  else el.value = value;
}

function fireEvents(el) {
  el.dispatchEvent(new Event("input",  { bubbles: true }));
  el.dispatchEvent(new Event("change", { bubbles: true }));
}
Built with

Deliberately boring tech, doing something clever.

No framework, no build step, no dependencies. Just the platform — which is exactly why it stays fast and easy to audit.

Manifest V3
Service worker, scripting & contextMenus APIs — the modern Chrome extension model.
Vanilla JS
Zero dependencies. Shared common.js runs in pages, content scripts and the worker alike.
chrome.storage.local
The whole vault, on-device. Promise-wrapped, live-synced across every open view.
Modern CSS
color-mix, glass blur, an animated aurora and theming via custom properties.
Who built this

Built by an engineer who got tired of forms.

I'm Charan — an AI & automation engineer in Bangalore. I built production LLM systems (one of them a Springer-published model that reads chest X-rays), and before that wrote real-time control code for jet engines at DRDO. This is the small tool I built for myself between the big ones.

Let's talk

Have an idea — or want to break something interesting?

I'm open to interesting work and good conversations. Tell me what you're building, or just say hi.

Opens your email client — no data is stored or sent to a server. Crafted with intent.