User-Agent: moz://a

Home Blog


Every six months, Mozilla gets all of its employees from around the world together in one place, for a week. This morning was the plenary session, with Mozilla leadership talking about our successes this year, as well as plans for the future. I noticed a theme that, while not super overt, I find very interesting, and bodes well for Mozilla’s future.

The words “user agent” kept coming up in various aspects of the plenary. The User-Agent header has a… shall we say storied history. When most people hear the term “user agent”, they mostly think of the “user agent string”. This is passed through the User-Agent header to identify which browser you’re using.

Well, that’s how most people think of it, but that’s not the whole story. If it is supposed to identify which browser you’re using, why is it not the Browser header? What is this “user agent” term anyway?

The concept is a bit more broad: a “user agent” is a bit of software that acts on behalf of its user. A web browser is a “user agent” for the web. But an email program is also a “user agent” for email, for example. So “user agent” and “web browser” are not synonymous; a web browser is a specific form of user agent.

Words have power, however. Framing matters. The way you describe a problem affects the way you think about the solutions. So the shift in language I picked up on was, Mozilla is not building a web browser, Mozilla is building a user agent. So what’s the difference here?

A web browser is a dumb terminal. A user agent advocates and works for you, to better your experience.

There’s a lot more to say about what all this framing implies: for security, for privacy, for customization, for openness, for advocacy, for social impact. But I have some meetings to go to, so I’ll just leave you with a question:

What if your browser worked for you, rather than against you?

In my mind, this “user agent” framing is a very useful and interesting way to think about Mozilla’s mission, and the goals we pursue in the future.