FillKit reads page structure, labels, and surrounding context to detect what each field expects — then fills it with realistic, coherent data. A checkout form gets a valid card number, matching expiry, and billing address in the same city. A signup form gets a real-looking name, email, and strong password.
- 150+ field types — names, emails, phones, addresses, credit cards, dates, UUIDs, and more
- 50+ locales — multilingual field detection and locale-appropriate data
- Valid & invalid modes — generate correct data or intentionally broken values for edge-case testing
- Keyboard shortcuts —
Ctrl+Shift+Kto fill all,Alt+Kfor current form,Alt+Hto toggle widget - Zero config — install and start filling. Customize via the options page when needed.
| Browser | Link |
|---|---|
| Chrome | Chrome Web Store |
| Firefox | Firefox Add-ons |
├── shared/ Shared code (settings, messaging, UI, content bridge)
├── chrome/ Chrome MV3 extension
├── firefox/ Firefox MV3 extension
└── scripts/ Build and icon generation scripts
Both extensions share all UI (popup, options page) and core logic (content bridge, settings, messaging) via the shared/ directory. Browser-specific code is minimal — thin wrappers around the shared modules.
- Node.js >= 18
- npm
# Install root dependencies (esbuild, eslint, prettier, etc.)
npm install
# Install browser-specific dependencies
cd chrome && npm install && cd ..
cd firefox && npm install && cd ..# Build both extensions
npm run build
# Or build individually
npm run build:chrome
npm run build:firefox
# Generate icons (SVG -> PNG, all sizes)
npm run build:iconsAfter building:
- Chrome: Load
chrome/dist/inchrome://extensions(Developer mode -> Load unpacked) - Firefox: Load
firefox/dist/inabout:debugging#/runtime/this-firefox-> Load Temporary Add-on, or runcd firefox && npm run start
Watches JS source files and rebuilds on changes. HTML/CSS changes require a manual re-run.
cd chrome && npm run watch # Rebuilds on file changes
cd firefox && npm run watchnpm run lint:check # ESLint (zero warnings)
npm run format:check # Prettier
npm run validate # Both lint + format# Chrome — creates .zip in chrome/packages/
cd chrome && npm run package
# Firefox — creates .zip in firefox/web-ext-artifacts/
cd firefox && npm run package
# Firefox — lint manifest and built extension
cd firefox && npm run lint:web-extSee docs/publish-ext.md for the full store submission guide.
| Shortcut | Action |
|---|---|
Ctrl+Shift+K |
Fill all forms on page |
Alt+K |
Fill current form |
Ctrl+Shift+L |
Clear all filled data |
Alt+L |
Clear current form |
Ctrl+M |
Toggle valid/invalid mode |
Alt+H |
Show/hide widget |
Alt+I |
Toggle fill mode (widget/inline) |
Ctrl+, |
Open settings |
Ctrl+/ |
Open help |
Ctrl+Shift+M |
Shuffle widget position |
Alt+E |
Rotate widget orientation |
FillKit is designed exclusively for development, QA testing, and demo environments. All generated data is synthetic — realistic but entirely fake. FillKit is not intended for filling real forms with real personal information.
The extensions request broad host permissions (<all_urls>) solely to detect and autofill forms on any page during development or testing. All processing happens locally on your device — no form data, field values, or page content is transmitted to any server. The extensions store only your preferences (locale, mode, shortcuts) in your browser's sync storage.
A future version will support an optional, opt-in connection to FillKit Cloud for enhanced field detection. When enabled, only form structure metadata (field labels, input types, HTML attributes) will be sent — never form values. Cloud mode will require explicit opt-in with an API token.
Full details: Privacy Policy | Terms of Service
Built on @fillkit/core — the same SDK available for programmatic use in your tests, demos, and development workflows.