Underground Extension Generator
Loading...
Underground Extension Generator
Underground Extension Generator
Ready to forge

Underground Extension Generator

Describe your extension, generate the code, refine it with AI, then export for Chrome, Edge, Firefox, Opera, or Safari.

Sponsored
01

Extension brief

* Required
No limit — describe it in as much detail as you like.

Generate with AI

Optional. Use the built-in models, priced from free up to 999 credits per message, or bring your own OpenRouter key.

0–999 CREDITS
AI engine
1 credit/msg

Free on any plan needs no credits. Free with Pro is included with a Pro plan and costs the listed price otherwise.

Every built-in model is listed with its exact price and the limits that come with it. No API key needed.
Pick any OpenRouter model ID, or choose Custom.

Built-in models run through this app with your plan. No key needed.

02

Your starter kit

Tab TidyReact + Vite · MV3
Generated
Generated

extension.spec.yaml describes the extension and PROMPT.md can rebuild it from scratch. Both ship inside every export.

03

App.tsx studio

A chatbot for one file. Ask for a change, read the new src/App.tsx, then apply it.

No versions yet App.tsx benchmark · not run yet

App.tsx chat

Enter to send
App.tsx benchmark

src/App.tsx


                
                
App.tsx versions

Every applied change is kept here, newest first.

04

Refine with AI

Ask for changes. Every answer can update the plan and rebuild the code.

No plan yet

Chat

Enter to send

Build plan

Draft

Your plan appears here once you generate or ask for a change.

05

Extension icon

Generate a square icon with the Gemini image model, then ship it inside your export.

Nano Banana · Gemini 2.5 Flash Image Not in export

Icons come from the platform's Gemini image model, so this needs a signed-in account with credits.

A kept icon is added to every browser export as icons/icon-16.png, icon-48.png and icon-128.png.

06

Versions & git

Every commit saves a full snapshot of the extension: history, branches, diffs and tagged releases you can rebuild in real git.

Working tree

A tag becomes a release in the changelog and sets the version in manifest.json.

Each commit stores every file as it looks now, together with the build plan.

History

Your versions appear here after the first commit.

Restore puts an older version back into the editor. Commit afterwards to keep it.

07

Injection console

Type the 99-combo codex into a target automatically. Pick a range, set the keystroke speed, then run it macro line by macro line.

Idle

Run control

DuckyScript
0 ms injects at hardware speed. Higher values type like a person.
1 to 99 covers the whole codex. Chapters run 9 moves deep across 11 pages.
A synthetic key event is untrusted, so a browser will not insert text for it on its own. Value + key events writes the text and dispatches keydown, keypress and keyup.
Injection progress
Combo0 / 99
Characters0
Typing time0.0s

This console drives the sandbox below. It cannot attach a debugger to other tabs — a sandboxed page has no access to them, and this tool does not try.

Terminal

    Press START and every macro line lands here as it runs.

    Payload script

      Sandbox target

      textarea

      Key events received

        Every dispatched keydown, keypress and keyup shows up here.

        08

        Test in Chrome

        Run the extension in a copy of the browser here, then download a kit that opens a throwaway Chrome with it loaded.

        Simulated browser

        about:blank

          The popup runs for real — React, Tailwind and your compiled src/App.tsx — with the browser APIs answered here instead of by Chrome. It cannot test what only a browser can: real permission prompts, your real tabs, and other sites.

          Extension internals

          The extension has not saved anything yet.

          Storage
          What to check in the real browser