Lynx and text-browser user agents
Lynx, w3m, and Links are text-mode (terminal) web browsers that render pages without images, CSS, or JavaScript. Their user-agent strings are short and typically begin with the program name, such as a Lynx product token. Seeing one tells you the request came from a text browser or a script using one, not a graphical browser.
What this means
Text browsers run in a terminal and render only text and links. Lynx is the best known; w3m and Links are similar, with Links offering an optional graphics mode. None execute JavaScript by default, and they do not load images or apply CSS.
This makes them useful for accessibility testing and for low-bandwidth or headless server use. It also means a JavaScript-dependent page can look empty to them, which is a quick way to spot content that is not present in the initial HTML.
How they appear
Text-browser user agents are short and usually lead with the program name. Lynx commonly begins with a Lynx product token followed by a version; w3m and Links use their own program names. They lack the long compatibility chain that graphical browsers carry.
Because the strings are short and easy to set, scripts sometimes adopt a Lynx-like user agent. Match on the program token to recognise the family, and remember the string is a claim, not proof.
- Lynx user agents typically start with a Lynx token plus version
- w3m and Links name their own program in the string
- No JavaScript, CSS, or image loading by default
How it appears in analytics and logs
A short user agent naming Lynx, w3m, or Links indicates a terminal text browser. These clients do not run JavaScript or load images, so a page that depends on client-side rendering will appear largely empty to them.
Diagnostic use case
Recognise text-browser traffic in logs, understand why such clients ignore JavaScript and CSS, and decide whether to treat them as human, accessibility, or automation traffic.
What WebmasterID can help detect
WebmasterID can surface text-browser tokens so you can see non-graphical clients distinctly, which helps separate accessibility/CLI use from graphical browsers and scripted access.
Common mistakes
- Assuming a text browser will render JavaScript-built content — it will not.
- Treating every short program-named user agent as a bot without checking behaviour.
- Forgetting that scripts can copy a Lynx-style user agent.
Privacy and accuracy notes
A text-browser user agent reveals only the program in use, not who is using it. WebmasterID treats it as coarse client context and never links it to a person.
Related pages
- curl, wget and script user agents
Command-line and library HTTP clients send a default user agent that names the tool: curl/x.y, Wget, python-requests, Go-http-client, and similar. These are scripts, not browsers, and seeing them is normal. This page explains the patterns and how to treat them without over- or under-reacting.
- Wget user agent
GNU Wget is a non-interactive command-line tool for downloading files and mirroring sites over HTTP, HTTPS, and FTP. Its default user agent contains a Wget product token with a version. The raw token is a long-standing signal of scripted downloading, though it is trivially changed with a flag.
- How to parse user agents safely
Parsing user agents by hand with regular expressions is fragile and breaks as strings evolve. The safer approach is to use a maintained UA library, store a coarse category rather than each visitor's raw string, and treat the result as a hint, not an identity. This page sets out a privacy-safe parsing approach.
- Bot vs human
Separate scripted and non-graphical clients from graphical browser traffic.
Sources and verification notes
- GNU/Lynx project — Lynx text browserLynx is a text-mode browser; UA begins with a Lynx token. w3m/Links behaviour described generally.
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.