Skip to content
yiaanyPublic

About

The best messenger

Resources

Code of conduct

Contributing

Security policy

Stars

11 stars

Watchers

0 watching

Forks

Repository files navigation

gitmsg

Your DMs. Their version control. Our questionable judgment.
A real messenger built on GitHub. Now in your terminal. Yes, every “lol” is a commit.

Next.js 16 React 19 TypeScript: typed chaos Node.js 22
Storage: GitHub repositories WebRTC audio calls Optional encryption MIT license

Open gitmsg — send something stupid

Get in before GitHub calls Microsoft and Microsoft calls SWAT. 🚨
It's a joke. We hope.

The good stuff · Terminal CLI · Self-host · Contribute · Break something?


☎️ Your terminal can make phone calls now

Chat. Send voice notes. Call your friends. Without leaving the terminal. An actual OpenTUI messenger, not curl wearing a trench coat.

Bill Gates pays for our DMs. We brought the ASCII art. Your terminal is a phone. Your database is GitHub. Your messages are commits. This is either peak engineering or a cry for help. Holy shit, it works.

The Bill Gates part is a joke: GitHub is owned by Microsoft, not a personal sponsorship. API quotas, storage, hosting and your network costs still apply. Live audio is peer-to-peer, not a Microsoft-funded conference bridge.

One install. One command. Your own GitHub account.

npm release candidate: @yiaany/gitmsg@0.1.0-alpha.0. The commands below are for after the first alpha is published; registry ownership/authorization is still a release gate. The unrelated npm package gitmsg is not this project.

With Node.js >=26.4 and npm:

npm install --global @yiaany/gitmsg@alpha
gitmsg

That's it. npm installs the matching Bun runtime too; no separate shell installer. Choose Continue with GitHub, approve the one-time code, and use your own chats. No token paste, client secret or personal OAuth app required. Want your own OAuth app or an existing GitHub API token from your credential manager? You can →

  • Real WebRTC audio calls. Connecting spinner, connected timer, themed ASCII art and a voice diagram driven by your actual microphone. Not random bars.
  • Messages, images, voice notes, Copy / Reply, per-chat drafts and five themes.
  • Optional /secure encryption. New content and call signaling use shared AES-256-GCM keys; audio uses WebRTC transport encryption.
  • gitmsg or git message, from any directory. It never commits your project.

Alpha caveats: calls need two-person private-chat metadata; incoming calls follow the open conversation. No TURN means some networks won't connect. A real website-to-CLI call still needs live acceptance testing. OAuth asks for broad repo access; standard messages are GitHub-readable. This is not an audited Signal replacement or an offline messenger.

CLI quick start & commands · Full terminal manual · Contribute to the CLI · Release checklist

💬 Wait, this actually works?

Chats are repositories. Messages are commits. “I never said that” now comes with a git log.

🌱 Actual commit farming. One message = one commit. An edit? Another commit. A reaction? You guessed it. Your team lead thinks you're shipping like a machine. You're arguing about pizza. Git log doesn't snitch. The diffs do.

Real commits, not guaranteed green squares: GitHub's contribution-graph rules still apply.

You get Git gets
🔒 Private chats & public channels A wildly unexpected career change
📸 Photos, files & voice notes Actual blobs. Not a metaphor.
☎️ One-to-one audio calls Signaling only. We do not commit your breathing.
↩️ Replies, edits & reactions More commits. Obviously.
🔎 Search, pins & Saved Messages Your “I'll remember this” folder
🗝️ Optional browser encryption Ciphertext instead of your lore

Real people. Real messages. No fake online status. Dark/light themes, mobile UI and keyboard shortcuts included. There's also /shrug. Essential infrastructure.

⚡ Three steps to questionable greatness

  1. Open gitmsg → sign in with GitHub. Login creates no repositories.
  2. New Message → pick a friend → start a chat. They accept the GitHub repository invitation.
  3. Send “hey”. Congratulations. You have weaponized version control.

Important

Git remembers. Standard messages are readable by GitHub and repository readers; deleting hides them, not their history. Encryption is opt-in, not retroactive. Know the boundaries →

🧠 Open the hood. Disappoint a database engineer.

You → authenticated API → event file + Git commit → your friend's polling tab

No persistent message database or separate realtime service. Audio travels directly over WebRTC, never into Git. Calls are best-effort: no TURN, some networks won't connect, both tabs must stay open. Unencrypted signaling can expose IP addresses in history. Calls →

GitHub quotas and hosting limits still apply. “Stored in Git” does not mean “infinite free infrastructure.” Operating limits →

OAuth mode requests broad repo access; GitHub App mode supports scoped access. No independent security audit is claimed. Production uses Vercel Web Analytics with URL queries/fragments stripped and no message/account/call custom events.

🛠️ Run your own questionable infrastructure.

Node.js 22, then:

npm ci
cp .env.example .env.local
npm run dev

Open /setup; configure your own GitHub credentials and session secret. Secrets stay in .env.local or Vercel, never Git. Full setup →

Keep app source and chat repos separate. Otherwise “lol” triggers a deployment. Funny once.

🤝 Make this bad idea better.

Small PRs, tests, accessibility fixes and docs welcome. Start here →

CLI & protocol · Bots · Plugins · Roadmap

Before shipping: npm run check:secrets · npm test · npm run typecheck · npm run build.

Report vulnerabilities privately. No tokens, room keys or real chats in issues. Be excellent to each other. Opening the source? Publication checklist →


No pitch deck. No blockchain. Just “holy shit, it works.”

MIT · Third-party credits · Design provenance
Not affiliated with GitHub, Microsoft or Telegram. Especially not their SWAT departments.

About

The best messenger

Resources

Code of conduct

Contributing

Security policy

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages