When LLMs first came out, one of the first things I tried to use them for was generating Firefox extensions. I had no idea how to write Firefox extensions, so it seemed like a reasonable path to get one at least working. Back then, I used GPT3, and I had to prompt it over and over again to get bits and pieces that I could stitch together into a coherent extension that worked.
It seems the LLM extension writing story has since improved. I gave the following prompt to Gemini:
I would like to write a firefox extension for my password manager. I would like the plugin to be able to detect when I am on a domain for which there is a password in the password manager, and if so, automatically enter that information into the login page. Write the extension along with a native messaging api counterpart that interfaces with the password manager, which is a native program. The password manager can be invoked in the following ways:
`npm l` to list all of the passwords, one entry per line. The format of the entry is "<domain>/<username>"
`npm s <entry>` to write the password to standard out
Use these interfaces to write the native messaging api part, and use the native messaging api interface to write the extension.
I placed all the files exactly where it said, loaded the extension, and it just worked. No more prompting necessary.