It is possible to have an extension require the streamer to run an app on their machine for functionality, but there is some issues to be aware of that would make it problematic.
Firstly, only the extension for the streamer themselves would be able to connect to the app running on their machine, as for any viewer to do so would mean you would have to publish the streamers IP which is a huge security issue and should not be attempted.
Secondly, the app running on streamers machines wont be an EBS for the extension as it wont have your extension secrets needed to sign/verify JWTs. As such as the only way for you to get data to your viewers would be the app sending it to the streamer, who then broadcasts it over Pubsub. The issue here is that Pubsub has rate limits (1msg/s per channel, 5KB max message size), so that may not be sufficient to get all the data you need to your viewers.
As well as the rate limtis associated with pubsub, there’s also the practical issue in that it requires the streamer to have one of your extension views open, which is not always practical and if there’s any connection issues then the extension will fail.
A more appropriate solution would be to have the app you require the streamer to run connect to your EBS you have hosted somewhere properly, and then this can either broadcast messages on pubsub itself or allow viewers to communicate with (either via a websocket or a REST API).