User Agent Generator and Viewer

What is this?

This tool is used to generate and browse random user agents. This is useful for web developers, (ethical) hackers, and security researchers.

Servers may respond differently depending on the user agent. A mobile device may be served smaller assets. An unsupported browser may be given an error. A scripting tool may be flagged as a bot and served status code 418. Fishing out such responses is useful during penetration tests.

Due to the nature of the generation algorithm, synthesised agents may not necessarily reflect actual agents, only mimicing in appearance. This means this tool may generate non-existent version numbers, build numbers, etc.

Usage

To copy a user agent, simply click on the row.

  • Settings : Configure miscellaneous settings, such as UI and search-related parameters.
  • Fetch Data : Summons a pre-defined collection of diverse user agents for browsing.
  • Generate : Open the Generator toolbar to begin generating user agents. From here, you can choose from various presets , or choose to generate specific browsers and devices with the Custom preset.
  • Copy : Copy all the user agents currently shown on the table.
  • Limit : View a fixed number of icons (e.g. 10, 20, or 50). When generating, this will also limit the number of generated agents to the selected number.
  • Select Columns : You can use this dropdown to hide/unhide columns. Use this to your advantage when selecting user agents!

Why?

Quite simply, I wanted a down-to-earth, feature-first, no-ads tool for generating and browsing user agents. During my pentesting engagements, I've encountered websites which offer no response to a minimal HTTP request, but return a full web page when provided a user agent. Sometimes any agent is fine, but sometimes a specific one is needed (e.g. Safari on iOS). This explains the need for enumerating sites with different agents.

Most other online solutions didn't work for me, were too simplistic, or full of ads. I also wanted a randomisation factor for better opsec, to avoid limiting myself to a few hard-coded user agents which could be easily blocked (assuming IP rotation is used). Hence, I decided to build this.

But truthfully, I also wanted to scratch my early 2025 programming itch by picking up technologies such as the Elm Programming Language and TailwindCSS. And this project was simple enough to give it a go.

Built-In Minification is Pretty Cool

Interestingly, some folks have introduced Elm Tailwind libraries, but they operate differently from regular Tailwind. TailwindCSS, unlike Bootstrap, predefines a ton of CSS classes, then strips unused classes by scouring HTML when the tailwindcss CLI command is called.

Elm, however, has built-in minification capabilities thanks to Elm's guarantees and pure functional nature. This allows library authors to simply pre-define TailwindCSS classes as Elm symbols; when compiling, any unused symbol will be yeeted out. What this means is: minification is seamlessly unified into Elm's optimiser. There's no need for "yet another tool".

This not only applies to CSS, but also to icons!

Credits

Big thanks to UAParser.js for their awesome library and tests.

Honorable mentions:

Source

Check out this project on GitHub . Issues and PRs are welcome.