At least in my mind that would involve a kind of holding space separate from files (but serving some of those purposes). It's going to involve a lot of large, structured data, remote resources, and potentially "live" entities (like an open tab). All of which are still manipulable entities, but they need representations and a place to exist.
In the space of "live" entities, I played a bit with something I called "genies" (out of a notion that they were "a kind of daemon" or "something that's not quite a daemon", depending on where you drew lines) where a long-running process would register itself with your shell before backgrounding, and then you could make requests of it at leisure and possibly poll in your PROMPT_COMMAND. There's a lot of potential ecosystem I haven't really fleshed out, but I did put together a libpurple client that worked that way (with a UX very much inspired by https://en.wikipedia.org/wiki/MH_Message_Handling_System)
The UX I'm picturing is a suite of individual commands that can run from the shell against the current "state of the page", some of which would produce a display in either the shell or a separate window. One of those might be of the form of "render the whole page" but it could be less privileged a view than it is in existing browsers.