← All Tools
User Agent Builder🔒 100% local
Build user agent strings. Privacy-first, no server uploads, no tracking.
Related Tools
Assembles a User-Agent header string from three clues you type as a comma-separated list: browser, operating system and device. It lowercases the parts, matches them against a fixed table of browsers and platforms, and returns a Mozilla/5.0 string plus a component breakdown, a fetch() snippet and a curl command using it. The whole assembly is a lookup in constants held by the component, so no request is made and no real browser is queried.
How to use it
- Type browser, OS and device separated by commas, for example Chrome, Windows, Desktop.
- Press Process.
- Copy the User-Agent line, or take the curl command at the bottom if you want to test with it.
Worked example
Chrome, Windows, DesktopbecomesMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36quoted here is just the UA line; the panel also prints a Components block, a fetch snippet and a curl command
Safari, iOS, PhonebecomesMozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15iOS plus a phone-style device word switches the engine block to the Safari form and labels the device mobile
When to use it
- You need a plausible User-Agent for a curl call or a load-test script that expects a browser string.
- A server is blocking your scraper by User-Agent and you want to try a desktop Chrome or Firefox header, ideally from a non-browser client.
- You are testing how a site renders for a mobile client and want the matching header value to send from your tooling.
What it does not do
- Only five browsers (Chrome, Edge, Firefox, Safari, Opera) and the platforms Windows, macOS/mac, Linux, Android, iOS/iPhone and iPad are recognised; anything else is rejected with a message naming the accepted list.
- The version numbers are hardcoded constants - Chrome 131, Firefox 133, Safari 18, Edge 131 - so the built strings describe an older browser than the one your visitors will be running, and they will age further.
- Matching is a substring test, so Chrome-ish, notchrome or a word containing 'mac' still matches, and any text after the third comma is silently discarded.
- A fetch() call cannot set User-Agent from page JavaScript; browsers drop the header, which the tool's own output notes. Treat the string as input for curl, a server-side script or a scraper, not as a way to disguise this page.
- The device word only changes the output for Safari; for Chrome, Edge, Firefox and Opera the device label changes but the UA string stays a desktop one.