Interrupt Chat

"Realtime" interruptible chatting in the terminal

Idea

kind of like speech rather than im/zulip/email in that...
  • what you say is observed by others as its produced
  • people can interrupt one another
  • what you say doesn't stay observable for long
  • (so you have to listen and pay attention)

want

  • Immediacy: see what you type right away
  • Consistency: everyone should see the same thing
  • Integrity: reports of what you typed don't alter

(some sort of "ici thoerem": can't have all of these)

video...
How it works
  • client terminal: raw mode without echo
  • UDP sockets
  • client sends each keypress with timestamp to server
  • server checks timestamp, ignores old from client
  • server updates state: recent chat, names, speaker
  • server updates all clients with new state
  • client checks timestamp, ignores old from server
  • client updates terminal with new state

Live Demo...

Thanks!

project github: https://github.com/bebebebebe/Interrupt