/devzat

The devs are over here at devzat, chat over SSH!

Primary LanguageGoMIT LicenseMIT


Devzat - Chat with other devs over SSH in your Terminal | Product Hunt

Where are the devs at? Devzat!

Devzat is a custom SSH server that takes you to a chat instead of a shell prompt. Because there's SSH apps on all platforms (even on phones) you can connect to Devzat on any device!

A recording I took one day: asciicast

Usage

Try it out:

ssh devzat.hackclub.com

You can log in with a nickname:

ssh nickname@devzat.hackclub.com

If you're under a firewall, you can still join on port 443:

ssh devzat.hackclub.com -p 443

If you add this to ~/.ssh/config:

Host chat
    HostName devzat.hackclub.com

You'll be able to join with just:

ssh chat

We also have a Slack bridge! If you're on the Hack Club Slack, check out the #ssh-chat-bridge channel!

Feel free to make a new issue if something doesn't work.

See the status site of the main Devzat server to check if it might be down.

Want to host your own instance?

Quick start:

git clone https://github.com/quackduck/devzat && cd devzat
go install # or build, if you want to keep things pwd
ssh-keygen -qN '' -f devzat-sshkey # new ssh host key for the server
devzat # run! the default config is used & written automatically

These commands download, build, setup and run a Devzat server listening on port 2221, the default port (change by setting $PORT).

Check out the Admin's Manual for complete self-host documentation!

Permission denied?

Devzat uses public keys to identify users. If you are denied access: foo@devzat.hackclub.com: Permission denied (publickey) try logging in on port 443, which does not require a key, using ssh devzat.hackclub.com -p 443.

This error may happen because you do not have an SSH key pair. Generate one with the command ssh-keygen if this is the case. (you can usually check if you have a key pair by making sure a file of this form: ~/.ssh/id_* exists)

Help

Welcome to Devzat! Devzat is chat over SSH: github.com/quackduck/devzat
Because there's SSH apps on all platforms, even on mobile, you can join from anywhere.

Run `cmds` to see a list of commands.

Interesting features:
• Rooms! Run cd to see all rooms and use cd #foo to join a new room.
• Markdown support! Tables, headers, italics and everything. Just use \n in place of newlines.
• Code syntax highlighting. Use Markdown fences to send code. Run eg-code to see an example.
• Direct messages! Send a quick DM using =user <msg> or stay in DMs by running cd @user.
• Timezone support, use tz Continent/City to set your timezone.
• Built in Tic Tac Toe and Hangman! Run tic or hang <word> to start new games.
• Emoji replacements! :rocket: => 🚀  (like on Slack and Discord)

For replacing newlines, I often use bulkseotools.com/add-remove-line-breaks.php.

Made by Ishan Goel with feature ideas from friends.
Thanks to Caleb Denio for lending his server!

Commands

Commands
   =<user>   <msg>           DM <user> with <msg>
   users                     List users
   color     <color>         Change your name's color
   exit                      Leave the chat
   help                      Show help
   man       <cmd>           Get help for a specific command
   emojis                    See a list of emojis
   bell      on|off|all      ANSI bell on pings (on), never (off) or for every message (all)
   clear                     Clear the screen
   hang      <char|word>     Play hangman
   tic       <cell num>      Play tic tac toe!
   devmonk                   Test your typing speed
   cd        #room|user      Join #room, DM user or run cd to see a list
   tz        <zone> [24h]    Set your IANA timezone (like tz Asia/Dubai) and optionally set 24h
   nick      <name>          Change your username
   pronouns  @user|pronouns  Set your pronouns or get another user's
   theme     <theme>|list    Change the syntax highlighting theme
   rest                      Uncommon commands list
   cmds                      Show this message
The rest
   people                  See info about nice people who joined
   id       <user>         Get a unique ID for a user (hashed key)
   admins                  Print the ID (hashed key) for all admins
   eg-code  [big]          Example syntax-highlighted code
   lsbans                  List banned IDs
   ban      <user>         Ban <user> (admin)
   unban    <IP|ID> [dur]  Unban a person and optionally, for a duration (admin)
   kick     <user>         Kick <user> (admin)
   art                     Show some panda art
   pwd                     Show your current room
   shrug                   ¯\_(ツ)_/¯

Integrations

When self-hosting an instance, Devzat can integrate with Slack and/or Discord to bridge messages, and Twitter to post new-user announcements. See the Admin's Manual for more info.

Devzat has a plugin API you can use to integrate your own services: documentation. Feel free to add a plugin to the main instance. Just ask for a token on the server.

Stargazers over time

Stargazers over time

People

People who you might know who have joined:

Zach Latta - Founder of Hack Club: "omg amazing! this is so awesome"
Ant Wilson - Co founder, Supabase: "brilliant!"
Bereket @heybereket: "this is pretty cool"
Ayush @ayshptk: "Can I double star the repo somehow 🥺"
Sanketh @SankethYS: "Heck! How does this work. So cool."
Tony Dinh @tdinh_me: "supeer cool, oh, open source as well? yeah"
Srushti @srushtiuniverse: "Yess it's awesome. I tried it."
Surjith @surjithctly: "Whoa, who made this?"
Arav @HeyArav: "Okay, this is actually super awesome."
Harsh @harshb__: "im gonna come here everyday to chill when i get bored of studying lol, this is so cool" Krish @krishnerkar_: "SHIT! THIS IS SO DOPE"
Amrit @astro_shenava: "Super cool man"
Mudrank @mudrankgupta: "🔥🚀🚀"

From Hack Club:
Caleb Denio, Safin Singh, Eleeza
Jubril, Sarthak Mohanty
Sam Poder, Rishi Kothari
Amogh Chaubey, Ella, Hugo Hu Matthew Stanciu, Tanishq Soni

Huge thanks to the amazing Caleb Denio for lending me the original Devzat server 💖

Made by Ishan Goel with feature ideas from friends. Thanks to Caleb Denio for lending his server!