soju doesn't have plugins, and I'd prefer to keep it that way. However some users may still want to extend soju with custom logic.
I think using IRC as a a plugin IPC could be a good idea. This is also what the pounce IRC bouncer recommends.
One part of this is support for
causal.agency/passive, which allows scripts to connect to the bouncer without changing the away status.
I think another part would something to allow snooping in the detached channels, without actually re-attaching. This would allow to implement a custom message watcher, similar to the ZNC watch module maybe.
Another piece of the puzzle could be a command to trigger arbitrary
BouncerServ notice broadcasts. Need to think how to handle disconnected clients (some scripts may want to send the NOTICEs on client reconnect).