Thanks! The hard part was actually understand Chrome extension's lifecycle and communication between the content script, popup, and service worker. What I initially thought was going to be hard, ended up being actually quite easy (cf socket.io).
Good luck if you ever attempt to build it :)