The general principle is exercise of a general push against "the application" as unit of functionality. My main inspiration has been nmh (https://www.nongnu.org/nmh/). As compared with traditional mail clients, it pushes individual mail-related actions into the shell.
The mail client has the advantage of not really needing a long-running process, but that isn't really a blocker - put the functionality behind an API and expose it through utilities, talking to a socket based on shell variables, and you can put together a pretty compelling experience. I wrote a libpurple client that worked that way. Where relevant, you can poll in PROMPT_COMMAND.
What does this look like for a web browser? ¯\_(ツ)_/¯
We can mimic a typical web browser experience, with commands to follow links, maybe manage tabs, interact with UX elements, poke the JS on the page?
But maybe we could also move away from the sense-of-place metaphor that puts us "on" one page at a time, and fold in stuff learned in spidering? Once we get thinking outside the box, there might be some really interesting things to find.
Or maybe not.
Please ask any questions you're left with :)