Skip to content

Latest commit

 

History

History
36 lines (23 loc) · 1.91 KB

README.md

File metadata and controls

36 lines (23 loc) · 1.91 KB

git-chat

This is a chat client built entirely on git. Do be aware that this is totally a joke.

I was inspired to do this by slack - the ultimate abuse of a chat program. With all its integrations, there are ways you can set it up so that all you see is a firehose of worthless data; issue tracker events, version control events - to the point that communication through your chat program becomes difficult.

This is a riff on that - what if instead of using your chat program to browse commit history, you used your commit history to chat?

Demo

Give it a try! It's pretty simple. Just type this into your terminal:

Note the install steps below no longer work, as someone has deleted the git-chat-client user (as was inevitable). To get this working, change the repository url in main.js to a repository you and your chat members have write access to. Don't use a git repository that you care about though, as this will add a new commit message for every chat. Also, you'll need to commit an empty uuid.txt file in that directory to get started.

git clone https://github.com/staab/git-chat.git
cd git-chat
npm start Anonymous

You can set your username if you'd like, by changing that first parameter to npm start.

Known Issues

I'm actually pretty proud of how bad this software is.

  • Sometimes it just stops receiving messages. Not sure why
  • Doesn't really work cross-platform because it parses git log with a very naive regexp, and uses cd
  • Sometimes it fails on startup (or after) with can't cd to /path/to/repo
  • Authentication is done by embedding the username and password in the repo url
  • Sometimes it double-commits messages because it retries on failed pushes, which re-commits
  • If you delete uuid.txt it breaks everything.

Disclaimer

This is a toy. It's not tested, it's not secure, it's not fast, it might even be dangerous. Don't use it seriously. But do try it out! Also it might only work on linux.