Lightning Autofill Help

Install Chrome extension   Install Firefox add-on   Install Edge extension


Introduction

Lightning Autofill is not like the typical autofill feature built into modern browsers that prompt to fill out your address information. The browser autofill generally works fine, and you should continue using it for such purpose. While the Lightning Autofill extension can be used to autofill addresses, it's more an automation tool to reduce your work load and help protect against wrist injuries. Any text input or interaction that you can do using the mouse or keyboard can probably be automated using Lightning Autofill, especially if you are proficient at JavaScript.

The core concept is (1) you create autofill rules and (2) the rules are automatically executed when you land on a web page that satisfies one or more rule definitions. Lightning Autofill's main UI is the infobar, which is where you execute and generate rules. For quick access, it's a good idea to assign a global hotkey to launch the Lightning Autofill infobar. Autofill rules are managed from the Options page, which is what the rest of this documentation will cover.

Basic Usage

To add a new autofill rule, click on the [+] button at the bottom of the rules table. Rules are processed in the order in which they appear except for JavaScript rules, which are executed last. To reorder a rule, click on the up/down icon and drag it up or down, or drag anywhere on the row where you see the move cursor (this can also be done using Keyboard Shortcuts for keyboard warriors). To perform an action on an autofill rule, click on one of the following buttons to the right of the rule:

Click on the [🔍] button to toggle the search box. You can search for text in any of the columns in the rules table as well as the profile name and site filter (see below). Remember to click the Save button after you have modified one or more rules.

Defining an Autofill Rule

This is where you define all the form fields to automatically fill on page load. A form field, also known as a form control or form element, is used to submit data from the client (your browser) to the server. Below is a detailed description of each column in the rules table.

TIP: The quickest way to define autofill rules is to use the infobar to automatically create all of the rules for you. To generate rules for the entire form, right-click on the page and select "Add rules for this form" from the Lightning Autofill context menu, or click on the Lightning Autofill bolt icon and expand the Generate Rules section. To generate a rule for one particular text/password input field only, right-click inside that input field and select "Add rule for this field" from the Lightning Autofill context menu. Once the rules are created, you can click on the Lightning Autofill logo in the infobar to open the Options page and fine-tune them if you wish. No more digging through the source code!

Profiles

Profiles allow you to organize all your autofill rules into different categories. For example, you can have separate profiles for addresses, personal info, account logins, blog post templates, and advanced search forms. To add, rename, rearrange, delete, duplicate, and sort profiles, select "Manage..." from the profile chooser to bring up the Manage Profiles dialog. If you delete an existing profile, you have the option to also delete all rules assigned to that profile or delete only the profile and move all rules to Unfiled. Shift- and Ctrl-click on multiple profiles to perform bulk operations on them. After making changes, click the Save and Close button to save your changes; clicking Cancel, clicking anywhere outside the dialog, and pressing Esc will discard all your changes. You can assign an autofill rule to a profile by clicking [›] to move it into the profile, or simply by switching to that profile and adding a new rule (rules added while viewing all profiles will be assigned to Unfiled).

Lightning Autofill's default behavior is to only process rules in the active profile. An active profile is the last profile you viewed in Options or the last profile you executed. If you want to execute all matching rules regardless of what the active profile is, then disable the "Autofill active profile only" option (see Settings).

Site – If you would like to restrict all of the autofill rules in a profile to a certain page or domain, then enter any part of the document title (text inside <title> tag) or URL here. This is similar to the Site column in the rules table, but works at the profile level. Note that rule-level site filters take priority over the profile site filter. As with the Name and Site columns, this field takes a Regular Expression, so these reserved characters should be escaped (i.e., preceded with a backslash): ^ $ . ? + * \ | ( ) { } [ ]

Hotkey – Enter a hotkey combination here to be able to quickly execute all the rules in this profile by pressing the assigned hotkey.

NOTE: Some hotkeys may not work if there is a conflict with another software or extension, or the hotkey is reserved by the operating system or browser.

Here you can set advanced options for profiles and rules. Each line needs to follow this syntax:

profile/rule ID: options

The following options are available:

Multiple options can be separated by spaces, e.g.:

r1: delay=2 forcefill=true

If you supply a profile ID, then the options will apply to all the rules in that profile; if you supply a rule ID, then the options will apply only to that specific rule. Profile and rule IDs are listed in the first column when you export the data.

TIP: You can quickly see a profile's ID by hovering the mouse over the profiles dropdown menu or [›] "move rule" button when in the "All" profile. A rule's ID is the same as its field reference (displayed in the tooltip when you hover over the Name or Value field), except that it starts with "r". For example, if the reference for Name is n1, then the rule ID would be r1. To see all of the profile and rule IDs, export your data (see Import/Export).

This is a global list of exceptions, similar to a blacklist. Any document title (text inside <title> tag) or website URL that matches a pattern listed in this list will be ignored by Lightning Autofill. Exceptions take precedence over the Site column and profile Site filter in the Form Fields tab. Some more things to note:

Text clips are snippets of boilerplate text that can be inserted into text fields via the right-click context menu. Text clips should be defined using this syntax:

Category (optional) > Title
Text to be inserted
===
Title
Text to be inserted

The category will appear as a submenu under Lightning Autofill / Insert text clip. You can organize your text clips using as many categories and subcategories as you like; the text to the right of the last > on the first line will always be the title. Separate each text clip with === on its own line. The text clip will be inserted at the cursor position inside the text field, or replace whatever text you have selected. Here are a few sample text clips:

Business Card
Tom Smith
321 Test Dr
Nowhereville, CA 90000
(408) 767-2676
===
Personal > Email > Gmail
tom@gmail.com
===
Personal > Email > Yahoo
tom@yahoo.com
===
Work > Email
tom@smith.com

NOTE: Chrome has a limit of 998 total context menu items, four of which are already used by Lightning Autofill. This leaves us with a maximum of 994 text clips. Since categories are displayed as submenus and each submenu also takes up a menu item slot, use categories sparingly because each category used means one fewer text clip that can be defined.

If you have text that you would like to reuse across multiple rules, then you can assign the text to a variable and reference it in the Value field. Each line needs to follow this syntax:

variable_name = some text

Variable names can only contain letters, numbers, and the underscore character. The text cannot contain line breaks; if you want to output a line break, then use \n instead. You can even set a variable to a value returned by JavaScript. Any line starting with "#" is treated as a comment and will not be evaluated. Here are some examples to get you started (more in variables.txt):

# Example: Monday, January 17, 2022 (format is region-specific)
long_date = javascript:new Date().toLocaleDateString('en-us', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric'})
# Example: 1/17/2022 (format is region-specific)
short_date = javascript:new Date().toLocaleDateString()

To use a variable in a rule, enter {@variable_name}.

PRO: JavaScript variables are only available to Pro members.

Operation

Interface

Subscription

After you subscribe, you should be getting an order confirmation email from Stripe. If you don't see it, look in your spam/junk folder. Inside this email there should be an invoice number. Enter this invoice number in the text field and click the Activate button. After a few seconds, the button should change to "Activated" to confirm that your subscription has been activated successfully. Click on the Manage Subscriptions button to go to the customer portal where you can do things like update your payment method, change subscription plans, and cancel your subscription.

Google Sheets

If you connect your Google account, Lightning Autofill will automatically back up all data to a Google Sheets spreadsheet called "Lightning Autofill backup". Now you can have the peace of mind that if you ever lose access to your computer or accidentally remove Lightning Autofill, your data would still be safe in the cloud.

PLUS/PRO: This feature is only available to Plus and Pro members.

Import/Export

Import allows you to load settings from a CSV file. You can copy the data from a CSV file opened in a text editor such as Notepad (do NOT open it in Excel because it does autocorrection that can change some of your values, such as "01" and "1.0" being replaced with "1"). The data to be pasted into this text box needs to be arranged in the following format:

Import mode:

Export allows you to save all settings to a CSV file for backup. Once your settings are stored in an external file, you can later use the Import feature to restore the settings in your current browser or transfer the settings to Lightning Autofill in another browser (Chromium, Firefox, Edge). Since browser extensions cannot access the file system at the moment, you will have to manually copy the generated CSV data, paste it into a text editor (do NOT paste it into Excel), and save the file with a .csv extension.

TIP: If you have a lot of autofill rules you'd like to reorder, then it's faster if you export your settings to a CSV file, reorder the rules in a text editor, and import the data back into Lightning Autofill. Similarly, if you want to move many rules into different profiles at once, then it's best to do this in a text editor by reassigning their profile IDs (e.g., c1). Once you get familiar with the CSV data structure, you can edit your autofill rules and settings in bulk before importing them back into Lightning Autofill.

As an alternative, you can also import data from a remote file by entering the file's URL in the field below the main Import/Export box and clicking Import. The URL needs to point to a plain text file that has the same structure as the exported CSV data. The server hosting this file needs to have the following two response headers:

The first header is to prevent cross-origin errors; the second header ensures that the file is served in plain text format (as opposed to HTML). Tick the checkbox to the right of the Import button if you would like to automatically import data from the remote file whenever the browser starts. This is a great way to manage autofill rules for a group of PCs from a centralized location. Here's a sample URL that has rules to autofill the Practice Form:

https://pastebin.com/raw/k5j87pZB

Available Plans

To get the most out of Lightning Autofill, you should upgrade to the Plus or Pro plan.

FREE
  • 100 autofills per day
Plus
$4.99/month
  • Unlimited autofills
  • Cloud sync
Pro
$9.99/month
  • Unlimited autofills
  • Cloud sync
  • JavaScript rules
  • JavaScript variables

Subscribe Today

Keyboard Shortcuts

Options – Global

Close modal Esc

Options – Form Fields tab (when caret is inside a text box)

Add new rule below Alt + +
Go to previous rule
Go to next rule
Move rule up Alt +
Move rule down Alt +

Infobar (also known as the wizard)

Open infobar

Chrome: set shortcut in chrome://extensions/shortcuts

Edge: set shortcut in edge://extensions/shortcuts

Firefox: how to set shortcut

Close infobar Esc

NOTE: For Mac users, replace the Alt key with .

Frequently Asked Questions

  1. I don't get it—how does Lightning Autofill work?
  2. How come some fields are not being autofilled? For the life of me I cannot get this to work!
  3. How do I auto-click a button (e.g., to automatically submit a form after autofilling)?
  4. How do I randomly select a checkbox from a group of checkboxes? What about randomly toggling one checkbox?
  5. How do I wait for a dropdown menu to be populated before autofilling it?
  6. How do I implement a text spinner like {red|green|blue}, except ensure that each value is used only once on the form?
  7. Where does Lightning Autofill store its data, and does it send the data anywhere?
  8. How do I autofill a form that uses generic elements (e.g., div, span, a) instead of form elements (input, select, textarea)?
  9. How do I create an autofill rule using the values from existing rules?
  10. What does the number on the lightning bolt icon mean?
  11. How come the extension icon is grayed out sometimes?
  12. How do I manually create an autofill rule?
  13. How do I use a JavaScript rule to check every checkbox on the page?
  14. What if I have multiple sets of data I want to autofill for the same form. Is there a way to select which set of data to fill the form with?
  15. Can I use jQuery in a JavaScript rule?
  16. Does Lightning Autofill support automating file uploads?
  17. Does Lightning Autofill support autofilling CAPTCHA?
  18. Can I make changes directly in Google Sheets?
  19. How do I add a delay for a specific rule?
  20. How do I increment a number in an existing form field?
  21. What if I need further assistance?
  22. Can I bookmark the Lightning Autofill Options page?
  23. What exactly is a "form field" anyway?
  24. What should I enter in each column of the Form Fields tab?
  25. Can I reorder the autofill rules?
  26. Can I duplicate a profile?
  27. I pressed the hotkey assigned to a profile, but it didn't execute. What's going on?
  28. What if I want to create an autofill rule for only one specific field?
  29. Can I disable a specific rule in a profile?
  30. The text boxes in the Form Fields tab are too small—can't you make them any bigger?
  31. I'm a power user. Are there any keyboard shortcuts?
  32. Just curious, what technologies did you use to develop Lightning Autofill?
  33. What's new in this version?
  34. How can I help translate Lightning Autofill into my local language?
  35. Is Lightning Autofill open source?
  36. This extension has saved me a ton of time—any way I can give back?
  37. What permissions are granted to Lightning Autofill?
  38. What's the best way to troubleshoot Lightning Autofill issues?
  39. The field autofills, but how come I still can't submit the form?
  40. Is there a way to execute different profiles one after another?
  41. How do I assign a hotkey to open the Lightning Autofill infobar?
  42. How come I do not see all my profiles or text clips in the right-click context menu?
  43. Is it possible to create global rules for addresses?

Q I don't get it—how does Lightning Autofill work?
A The easiest way to see how it works is to go to the practice page and generate some rules:
  1. Go to the Practice Form.
  2. Fill out some fields.
  3. Click on the Lightning Autofill icon in the toolbar (if you don't see the icon, then it's most likely hidden, so click on the menu icon to get to it).
  4. Create a new profile to save the rules in if you want to organize them by topic or website (this step is optional).
  5. Click on the Generate Autofill Rules button.
Now when you reload the page, all the fields that you filled out before should be autofilled.
Q How come some fields are not being autofilled? For the life of me I cannot get this to work!
A The web is like a wilderness—you never know what you'll encounter. With this said, there are generally two types of forms that can trip up Lightning Autofill:
  1. Forms that use dynamic field names. The rules generated by the Lightning Autofill infobar should work most of the time, but there are some complex forms where these rules will fail to work because every time you load the page the input elements' name attribute values change (e.g., they contain a randomly generated string or timestamp). For example, the first time you use the infobar rules generator the name attribute for the First Name field is "fname1481162526802", so the generated rule is ^fname1481162526802$; however, the next time you visit the page the name attribute changes to "fname1481162889085", so of course the rule won't match anymore and hence this field will not get autofilled. In such cases, you'll have to manually tweak the rules generated by the infobar so that they will continue to match. You can either try a shorter, more generic Regular Expression pattern like ^fname, or you can try matching against one of the other supported attributes (see Form Fields) instead of the name attribute if the values in those attributes don't change.
  2. Forms that rely on elements not supported by Lightning Autofill. Only traditional form elements (<input>, <select>, <textarea>) are supported by the infobar rules generator; for everything else, you'll have to use JavaScript rules. A good example is this online store. Add a product to cart and proceed to Checkout. The terms & conditions checkbox in the checkout form cannot be autofilled using the rule generated by the infobar. This checkbox is not getting checked because what you click on is not really a checkbox. Try right-clicking on it and selecting "Inspect"—you should see this highlighted: <ins class="iCheck-helper" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255); border: 0px; opacity: 0;"></ins> It's an <ins> element instead of the usual <input type="checkbox"> form element. To auto-click this, you'll have to use a JavaScript rule. Try this: To understand what this code is doing, enter the line below in the JavaScript Console. To bring up the Console, press F12 to open developer tools and click on the Console tab (or press Ctrl + Shift + J to toggle the Console directly). querySelectorAll() is a JavaScript method that takes a CSS selector as a parameter and returns a type of list called an array of all elements matching that CSS selector within the document object (basically, everything between <html> and </html>). In this case, it returns an array of elements matching .iCheck-helper, or class name "iCheck-helper". The [1] after this method is the index number. You can access items in the array by referencing an item's index number within the array. The thing to remember with JavaScript arrays is that index numbers start at zero, not one. Since the terms & conditions checkbox is the second item in the array, you use index number 1 to reference it. The last part of the statement (click()) is the meat of the action—it triggers a click on that element.

    When you create a JavaScript rule, the most important thing is to figure out what CSS selector to use to "select" an element so that you can act upon it (e.g., element.click() to simulate a mouse click or element.value = 'something' to autofill). In addition to querySelectorAll(), you can also use querySelector() to return the first matching element, which is simpler since the index number is no longer required. Here are some online references in case you want to dive deeper:
If all else fails and none of the rules work for you, then as a last resort you can follow the instructions in the answer to question 8.
Q How do I auto-click a button (e.g., to automatically submit a form after autofilling)?
A You can use a JavaScript rule to do this. Right-click on the button you want to auto-click and select "Inspect". You should see the underlying HTML code for that button highlighted in the Elements panel. Below is the code that you would enter in the Value column for various types of buttons.

<input type="submit" value="Apply"> <button id="continue-btn">Continue</button> – OR – If click() is not working for you, then you can manually trigger a 'click' event like this: As an alternative, you can add this JavaScript rule anywhere in the profile to auto-submit the form (JavaScript rules are always executed last):

Type = JavaScript
Value = Also be sure to check out cuddlycows' excellent How-To auto-submit a form tutorial.
Q How do I randomly select a checkbox from a group of checkboxes? What about randomly toggling one checkbox?
A To randomly select a checkbox from a group of checkboxes, you can use a JavaScript rule. To give you an idea, here's a rule that will randomly select one of the four checkboxes on this test page:

Type = JavaScript
Value = To randomly toggle a checkbox on or off, use the "?" value, e.g.:

Type = Checkbox/Radio
Name = ^subscribe$
Value = ?
Q How do I wait for a dropdown menu to be populated before autofilling it?
A A common scenario for this is when you want to select a state dropdown menu, but it's only populated when you select Country = US. If you use a standard autofill rule for state, then Lightning Autofill will try to execute it before the state dropdown menu is fully populated with all the states, so the rule will likely fail. To work around this, you'll have to use a JavaScript rule. Let's say you have this HTML code:
<select name="country">
  …
  <option value="US">United States</option>
  …
</select>
<select name="state">
  <!-- Initial state is empty -->
</select>
Your rule would look something like this:

Type = JavaScript
Value = The same concept applies for fields that are created dynamically (i.e., don't exist when the page first loads). For example, here's how you would autofill the comment box on YouTube:
Q How do I implement a text spinner like {red|green|blue}, except ensure that each value is used only once on the form?
A Let's say you have the following input fields and you want to fill them with the values "red", "green" and "blue", where each value is only used once:
<input name="color1">
<input name="color2">
<input name="color3">
Starting from Lightning Autofill v10, you can use the new shrinking text spinner variable to accomplish this. Here's what the rule would look like:

Type = Text
Name = ^color[1-3]$
Value = {(red|green|blue)}

As an alternative, you can also use a JavaScript rule. Your rule would look something like this:

Type = JavaScript
Value =
Q Where does Lightning Autofill store its data, and does it send the data anywhere?
A Lightning Autofill stores its data using the browser's chrome.storage API. Lightning Autofill does not and will never send your data anywhere. You can verify this by monitoring the Network tab. In fact, Lightning Autofill doesn't even track you using Google Analytics or anything else. Note that even though your data is not sent anywhere, you should still NOT use Lightning Autofill to store sensitive or confidential information since the storage area is NOT encrypted, which means anybody with access to your computer will be able to see whatever you store in Lightning Autofill if they know where to look.

Users on the Plus or Pro plan have the option to back up their data to Google Sheets, in which case the data is also saved in a Sheets spreadsheet called "Lightning Autofill backup". Note that if you delete this spreadsheet, Lightning Autofill will continue to sync to it since the document will live in the trash for 30 days. A new spreadsheet will be created automatically at the next sync once the existing backup spreadsheet is permanently deleted.
Q How do I autofill a form that uses generic elements (e.g., div, span, a) instead of form elements (input, select, textarea)?
A Some forms use generic elements to make the UI look pretty, but behind the scenes there is likely JavaScript that stores the selected values in hidden input fields (a good example is Google Forms). Since these "rich" forms are tricky to reliably autofill, I recommend either of the methods below to manually create the rules. Between the infobar-generated rules and the course of action outlined here, you should be able to autofill the vast majority of forms; however, you never know with the internet, so your mileage may vary.

Method 1: Target the form directly. Since the main purpose of a form is to submit information back to the server, you can short-circuit the input selection process and set the relevant form values directly. Chrome comes with a great tool to monitor what information is sent when you submit a form, which you can use to craft your autofill rules. Here are the steps:
  1. Go to the page with the form you want to autofill.
  2. Open Developer Tools (F12 or Ctrl + Shift + I).
  3. Go to the Network tab.
  4. Ensure the "Preserve log" option is checked.
  5. Look for the <form> element containing the fields you want to autofill and make a note of the action attribute value. This is the server script that handles the form data. Also make a note of the form's id or name attribute value, which you'll need to submit the form later on (last step). A quick way to find the correct <form> element is to right-click on a field and select "Inspect", then follow the breadcrumbs at the bottom of the Elements tab from right to left until you get to "form".
  6. Fill out the form with the values you want and submit it.
  7. In the Network tab, click on the link to the form action script from step 5. If you see multiple rows with the same name, then click on the one with "document" under the Type column.
  8. Go to "Query String Parameters" at the bottom (expand it if it's collapsed) and make a note of all the parameters. For example, if I were to search for "autofill" on Google, I would see something like this after submitting the form:
    safe: off
    site:
    source: hp
    q: autofill
    oq: autofill
    gs_l: hp.3..0i20k1l2j0j0i131k1j0l6.13514.14205.0.24666.11.9.0.0.0.0.511.1305.2-2j1j0j1.4.0....0...1c.1.64.hp..7.1.302.0.B15ZjP-S264
    The text to the left of the colon is the parameter key, and it maps to the input's name attribute; the text to the right of the colon is the parameter value, and it maps to the input's value attribute. A parameter refers to this key-value pair. These parameters are sent to the server when you submit the form, and they're the only things that matter as far as Lightning Autofill is concerned. Once you know what the parameters should be, then you are ready for the next step...
  9. Create autofill rules for the fields from step 8 (assuming these are hidden inputs, which are equivalent to text inputs). Using the same Google search example, the rules would look like this:

    Type = Text
    Name = ^q$
    Value = autofill

    Type = Text
    Name = ^oq$
    Value = autofill

    As you can see, you can usually get away with assigning a value for only the relevant fields, but you should experiment to see what works. If the rules don't work, then there's a chance that Lightning Autofill is executing them too fast, in which case you can add a delay by using a JavaScript rule, e.g.:

    Type = JavaScript
    Value = This tells Lightning Autofill to wait 2000 milliseconds (2 seconds) before executing the JavaScript code. If you want to increase the delay, then change 2000 to a larger number.
Method 2: Simulate user input. In theory, you should be able to autofill any form by simulating a human being via JavaScript. Here's a rule that simulates a person selecting the German language from a sample Google Form:

Type = JavaScript
Value =
Q How do I create an autofill rule using the values from existing rules?
A First, enable variables by going to Lightning Autofill Options / Settings tab and make sure the "Expand variables" option is checked. With variable expansion enabled, you should see a little gray box with some white text inside in the upper right corner of every field on the Form Fields tab. This is the variable name, or field reference. In order to use the value from that field, you refer to its field reference in your rule. For example, if you have a rule for First Name with the field reference v1 and a rule for Last Name with the field reference v2, and you want to autofill "[First Name] [Last Name]", then create a rule with this as the value: {v1} {v2}. For more information on variables, please refer to the Settings section.
Q What does the number on the lightning bolt icon mean?
A This number, also called an icon badge, represents the number of rules that were executed on the current page. Sometimes this number can be higher than you expected because Lightning Autofill runs in all iframes in addition to the main page, so the same rule may be executed in iframes as well.
Q How come the extension icon is grayed out sometimes?
A The lightning bolt icon is grayed out when there are no fields to autofill, or when the page title or URL matches something on the Exceptions list. The icon will light up when the following elements are detected: <input>, <select>, <textarea>, <iframe> (generally used by rich text editors), and elements that have the contenteditable="true" attribute. The icon is also grayed out when the extension auto-updates in the background; if this happens on a page with form fields, then you should reload the page for proper autofilling operation.
Q How do I manually create an autofill rule?
A Follow these steps:
  1. Right-click on the field you'd like to autofill and select "Inspect". This will bring up the field's HTML code. Most form fields should have a name or id attribute; the value in this attribute will act as a unique identifier for the autofill rule. See the Form Fields section for a full list of attributes you can match against.
  2. Go to Lightning Autofill Options. From the Form Fields tab, click on the [+] button. This will add a new row to the rules table.
  3. Here's what you would enter for each column in the row:
    • Type – the type of field it is. This should be self-explanatory. The JavaScript type allows you to automatically execute JavaScript code on page load.
    • Name – a unique identifier for the field to autofill. Use the attribute value from step 1. Note that Lightning Autofill does a partial match, so if you enter "email" and there's another field with name="email2", then this rule will autofill both fields. To prevent this, enter ^email$ to force an exact match.
    • Value – the value to autofill the field with.
    • Site – the page's URL or title. This acts as a site filter to trigger the autofill, so it's highly recommended that you enter something or else Lightning Autofill will blindly autofill every field of the selected type.
    • Mode – leave this on Safe. If the field contains a default value that you'd like to overwrite, then change the mode to Overwrite.
  4. The most important step: click Save.
If you reload the page, the autofill rule you just created should kick in and automatically fill out that field.
Q How do I use a JavaScript rule to check every checkbox on the page?
A Actually, you don't even have to use a JavaScript rule for this—you can simply use a Checkbox/Radio rule, leave the Name field blank, and enter 1 for the Value field to check every checkbox on the page. However, if you still want to use a JavaScript rule, then you can use this code: This will click every checkbox, so if one is already checked then it will be unchecked. If you want to have every checkbox checked regardless of its state, then enter this instead:
Q What if I have multiple sets of data I want to autofill for the same form. Is there a way to select which set of data to fill the form with?
A Yes, the Profiles feature is great for this. You can create a profile for each set of data. You may also want to enable manual mode (Settings tab) for this purpose. Now you'll be able to manually execute all the rules in a profile from the right-click context menu (Lightning Autofill / Execute profile) or by pressing the assigned hotkey.
Q Can I use jQuery in a JavaScript rule?
A Lightning Autofill versions prior to v12 had a special function called injectJquery() to inject the jQuery library, but that has since been removed since vanilla JavaScript can now do most of what jQuery was being used for (e.g., querySelector(), querySelectorAll()).
Q Does Lightning Autofill support automating file uploads?
A No, for security reasons Chrome doesn't allow autofilling of <input type="file"> elements. The best solution for this is to use a screen recorder or macro utility like AutoHotkey.
Q Does Lightning Autofill support autofilling CAPTCHA?
A It depends on the type of CAPTCHA. To my knowledge there is currently no way to extract text from a CAPTCHA image with 100% accuracy using JavaScript. Please post in the Discord community if you have a good solution for this. However, it is possible to auto-check the "I'm not a robot" reCAPTCHA. For example, here's a rule that works on this reCAPTCHA demo:

Type = JavaScript
Value =
Q Can I make changes directly in Google Sheets?
A No, any edits you make in Google Sheets will not sync back to Lightning Autofill and will be overwritten whenever you make changes in Lightning Autofill Options. There is currently no way for Google Sheets to communicate with browser extensions, so the sync happens in only one direction: from Lightning Autofill to Google Sheets.
Q How do I add a delay for a specific rule?
A The Delay option applies to all rules globally. If you want to add a delay for only one specific rule, then you'll have to use a little bit of JavaScript. Here's an example of waiting two seconds to autofill a field:
Q How do I increment a number in an existing form field?
A Let's say you want to increment the number in <input name="count">. You would create a JavaScript rule and enter this code:

Type = JavaScript
Value =
Q What if I need further assistance?
A If you need further assistance, please visit the official Lightning Autofill support community to start a new discussion or join an existing one. The old Google Group also contains a wealth of information, although it is no longer maintained. To get acquainted with Lightning Autofill, see what the rules look like for the Practice Form by automatically generating them using the infobar as outlined in the answer to question 1.
Q Can I bookmark the Lightning Autofill Options page?
A Yes, you can bookmark the Options page for quick access. For example, this is the URL for the Options page in Google Chrome:
chrome-extension://nlmmgnhgdeffjkdckmikfpnddkbbfkkk/options.html
The Options page can also be accessed through the right-click context menu if the setting is enabled in the Settings tab, or by right-clicking on the extension icon (lightning bolt).
Q What exactly is a "form field" anyway?
A A form field, also known as a form control or form element, is used to submit data from the client (your browser) to the server. It can have the following HTML tags: <input>, <textarea>, <select>. Though not technically a form field, Lightning Autofill also supports WYSIWYG edit boxes that use the <iframe> tag.
Q What should I enter in each column of the Form Fields tab?
A Move the mouse pointer over the question mark icon in the column header for some guidance. A detailed description is also available by clicking the Help button.
Q Can I reorder the autofill rules?
A Yes, you can easily reorder any rule by dragging the up/down icon on the right. If you are currently editing inside a text box, then you can press Alt + to move that rule up or Alt + to move it down.
Q Can I duplicate a profile?
A Yes, you can do this by following these instructions:
  1. Create a new empty profile in Options (this is the profile you want to duplicate to).
  2. Export the data to a CSV file under the Sync tab.
  3. Open the CSV file in a text editor like Notepad.
  4. Copy the rows of the profile you want to duplicate and paste it immediately above ### AUTOFILL SETTINGS ###.
  5. In the newly pasted rows, change the profile ID to the ID of the profile you just created (this can be found under the ### AUTOFILL PROFILES ### section).
  6. Import the CSV data back into Lightning Autofill.
If you master the CSV data structure, you can do all sorts of raw manipulations in your text editor, copy all, then paste directly into the Import/Export text box. This opens up a whole new level of flexibility and power for you. Note that if you copy directly from Excel, some values may change as Excel does some autocorrection (e.g., "01" and "1.0" will be changed to "1"), which can lead to unexpected results. This is the reason why you should open the CSV file in a text editor instead of Excel.
Q I pressed the hotkey assigned to a profile, but it didn't execute. What's going on?
A Chances are very likely that this hotkey is already used by Chrome, another Chrome extension, another program, or possibly your operating system. Try setting another hotkey for that profile.
Q What if I want to create an autofill rule for only one specific field?
A You can generate an autofill rule for one text field by right-clicking inside this field and selecting "Add rule for this field..." in the Lightning Autofill context menu.
Q Can I disable a specific rule in a profile?
A The quickest way to disable a rule is to set its site filter to something that will never match, like ###.
Q The text boxes in the Form Fields tab are too small—can't you make them any bigger?
A You can resize a text box by dragging the gripper (e.g., in Chrome) at the bottom right corner of the box. The new size will be preserved until you reload the page. You can also click on the Edit button to edit the value in a code editor (very useful for JavaScript rules).
Q I'm a power user. Are there any keyboard shortcuts?
A Yes, see the Keyboard Shortcuts section.
Q Just curious, what technologies did you use to develop Lightning Autofill?
A Mainly HTML, CSS, and JavaScript. HTML5: data attributes for various functionalities on the Options page, the <audio> tag for sound effects, and range input for the slider control. CSS3: border-radius for the rounded corners, box-shadow for the gradient shadows, flexbox for the modal dialog positioning, and transitions/transforms for the animations. Microsoft Ajax Minifier was used to keep the extension fast and light, and no JavaScript frameworks were used to further reduce the weight. All JavaScript performance testing was done using jsPerf. All coding was initially done in Notepad2, then later Notepad++.
Q What's new in this version?
A Click on the version number in the upper right corner to see the changelog.
Q How can I help translate Lightning Autofill into my local language?
A I'm glad you asked, and it's much appreciated! Please go to the #translations channel in the Discord community for guidelines on how to submit your translations.
Q Is Lightning Autofill open source?
A The Lightning Autofill extension is currently closed source.
Q This extension has saved me a ton of time—any way I can give back?
A I have poured countless hours into Lightning Autofill over the years, which began life in 2010 as an assistance tool for my disabled computer students and eventually evolved into the all-purpose extension that you see now. Since I'm just a one-person shop doing this in my spare time, anything that you can contribute would be a blessing whether it be posting how-to tutorials or answering questions in the support community. If you find Lightning Autofill useful and want to support its ongoing development, then please subscribe. Thank you so much for your support. 🙏
Q What permissions are granted to Lightning Autofill?
A For full disclosure, here are all the permissions that are required by Lightning Autofill:
  • host (http://*/*, https://*/*, file://*/*) – allow Lightning Autofill's content script to operate on all non-secure pages, secure pages, and local files (local files require opt-in after installation). Technically, Lightning Autofill has to be able to read data (to detect form fields) and change data (to fill out the form for you) on the web pages that you visit. Note that Lightning Autofill does not and will never track your browsing history, nor does it transmit any data back to a remote server. Your data remains on your local hard drive at all times.
  • identity – authenticate Google account for cloud sync to Google Sheets.
  • offscreen – allow Lightning Autofill to play sound effects from the service worker.
  • contextMenus – add Lightning Autofill to the right-click context menu.
  • storage – store rules and settings on your hard drive.
  • unlimitedStorage – allow unlimited storage. Without this permission you would only be able to store 5 MB of data.
For a complete list of permissions and possible warnings, please refer to Chrome's Permissions with Warnings.
Q What's the best way to troubleshoot Lightning Autofill issues?
A To help me help you faster, it would be best if you could provide me with enough information to reproduce the issue consistently because the first step in resolving the issue is to be able to reproduce it. Please provide me with the following:
  • Autofill rules you're having problems with – you can export the data and either email it to me privately or post it in the support group. If the rules contain private information, then remember to remove the sensitive bits or replace them with dummy data.
  • URL of the form you're having problems with – if the page requires a login or is behind a private portal, then the next best thing is to save the page as HTML and provide the complete HTML code. You can save any web page by pressing Ctrl + S and selecting "Webpage, Complete". If you're having a problem with only one specific field, then you can provide me with the HTML code for that field by right-clicking on it and selecting "Inspect" to bring up the Elements panel. This element should already be highlighted for you; to grab the HTML code, right-click on the highlighted element and select Copy / Copy outerHTML.
  • Error logs (if any) – Lightning Autofill can throw errors in two locations:
    1. Background page – to see if there are errors here, go to the extensions page (e.g., chrome://extensions in Google Chrome) and click on "service worker" next to "Inspect views" under Lightning Autofill (in Firefox, click the Inspect button). A new window should pop up; click on the Console tab. Make sure the dropdown menu to the right of the Filter input is set to "Default levels". Any errors should be printed in red text in the console.
    2. Content script – to see if there are errors here, go to the form you're having problems with and bring up the JavaScript console by pressing F12 and clicking on the Console tab. Make sure the dropdown menu to the right of the Filter input is set to "Default levels". Any errors should be printed in red text in the console.
Q The field autofills, but how come I still can't submit the form?
A Some sites use JavaScript validation to ensure that the user manually types the text into the field. Every site is different, but you can usually fool the validation by using dispatchEvent() to simulate user input. Example:

Type = JavaScript
Value = If the input event doesn't work, then try other keyboard events such as keyup, keydown, and keypress. I once came across a form that required a mouse click on the field (mousedown event) in order to properly validate the user input.
Q Is there a way to execute different profiles one after another?
A Yes, starting with v9.0.0 you can execute profiles from a JavaScript rule. This way you can chain a bunch of profiles together by having the first profile execute; the first profile contains a JavaScript rule that executes the second profile, and so on. Here is the function you can use to execute a profile: Autofill('profile ID', delay).

To execute profile c1 (the profile ID is displayed in the tooltip when you hover over the profiles dropdown menu): To execute the "All" profile: To execute the "Unfiled" profile after a 1.5-second delay (1500 ms):
Q How do I assign a hotkey to open the Lightning Autofill infobar?
A To assign a global hotkey to activate the Lightning Autofill infobar:
  • Chrome – go to chrome://extensions/shortcuts and enter the hotkey for Lightning Autofill.
  • Edge – go to edge://extensions/shortcuts and enter the hotkey for Lightning Autofill.
  • Firefox – go to about:addons, click on the gear icon, select "Manage Extension Shortcuts", and enter the hotkey for Lightning Autofill.
You can close the infobar by clicking the "x" icon or pressing the Esc key.
Q How come I do not see all my profiles or text clips in the right-click context menu?
A This can occur in Chrome when you have too many profiles or text clips. Chrome is limited to a total of 1000 context menu items (inclusive of the parent Lightning Autofill menu). This means, for example, if you have 1000 profiles set up, you would only see 997 profiles (the other three are used by the "Lightning Autofill", "Add rules for this page", and "Execute profile" menu items), and Option would not be displayed in the context menu.
Q Is it possible to create global rules for addresses?
A While there is no one set of rules that can autofill 100% of the address forms on the internet, you can leverage the autocomplete attribute to create rules that would autofill a large number for address forms. For example, here's a generic rule to autofill the first name:

Type = Text
Name = given-name
Value = Tom

Origin Story

What most people don't know is that Lightning Autofill started life with a very different purpose than the automation tool they're used to today: as an accessibility plug-in to help people with disabilities be more productive on the computer. From 2008–2010 I did service work at a Swiss NGO called Maison Chance. One of my primary responsibilities as a web design teacher was to ensure that my 23 students were proficient enough at using the keyboard and mouse to be able to land a job so that they can be financially independant. Most of my students had difficulty doing things that we take for granted, such as using their fingers or having enough motor functions to operate the mouse. I built the original Lightning Autofill v1 in order to facilitate the rudimentary data entry that I saw them struggling with in the classroom every day.

The goal was for my students to identify where the repititions and boilerplate content were in their assignments, then spend all the time they needed to write the autofill rules that would do the work for them automatically on page load. For the most part, this turned out to be wildly successful. There was that initial one-time time investment to painstakingly input the rules, but after that my students' productivity literally shot up 200–500%! Before my two-year contract was over, I managed to instill enough confidence and skills in my students to get them all hired. Depending on the severity of their conditions, the jobs ranged from basic web design (Joomla admin) and Photoshop work to data entry (something Lightning Autofill is particularly good at).

In the beginning I would go to each computer in the classroom and manually install Lightning Autofill locally. As I started adding more and more features to it, updating Lightning Autofill became quite a chore, so that's when I decided to try uploading it to the Chrome Web Store (or whatever it was called in 2010). This saved me so much time as every time I published an update, it would roll out to all the computers in the classroom automatically. The valuable time that I got back I would put into creating more interesting curriculums for my beloved students—a win-win. Over the years, long after I ended my service work, Lightning Autofill sort of took on a life of its own as more and more people outside of my classroom started installing it. Before I knew it, there was a bona-fide community built around Lightning Autofill, and the creative things that people do with it every day continue to blow my mind. 🤯

This is where it all began...

Credits

The following packages are used in Lightning Autofill: