#guild #chat-client #channel #terminal #command #scroll #messages

yanked ilo-toki

A terminal chat client for the Harmony protocol!

0.3.0 Jan 14, 2022
0.2.0 Jan 10, 2022
0.1.0 Jan 9, 2022

#13 in #guild

MIT license

91KB
1.5K SLoC

ilo-toki

Harmony chat client in the terminal!

Usage

Run it with cargo run once you've cloned the repo. If you'd like, you can install the program with cargo install --path ..

There are six basic modes: insert, normal, command, scroll, guild selection, and channel selection.

Insert mode is the default mode. In this mode, you can type out a message and send it. If you are in normal mode, you can enter insert mode by pressing i

Normal mode is accessible from all modes by pressing Escape. In this mode, you can access all other modes and perform navigation commands on the message box.

Command mode lets you execute commands related to chatting on Harmony. This includes things like quitting the program, joining other guilds, administration stuff, and changing settings. It is accessible from normal mode by pressing :

Scroll mode lets you scroll through messages using your arrow keys. It also lets you perform actions such as editing (e) and deleting (d, or ctrl+d for no prompt) messages. This mode is accessible through the s key in normal mode.

Guild selection mode lets you select a guild to interact with. Use your arrow keys to move up and down in the list and press enter to select a guild. This mode is accessible through the g key in normal mode.

Channel selection mode is like guild selection mode but for channels instead of guilds. This mode is accessible either via guild selection mode by pressing enter or via normal mode by pressing c.

TODO

  • Copy paste support
  • Markdown
  • Attachments
  • Embeds as links
  • Emoji support (ie, managing and sending them, not necessarily viewing them)
  • Reactions
  • Registration
  • Administration stuff
  • Theming
  • Mouse support
  • :tutorial command for new users
  • PluralKit-like functionality

Things that aren't important but would be neat:

  • Pictures in terminal for terminals that support it
  • Video embeds with yt-dlp/youtube-dl

Dependencies

~21–35MB
~662K SLoC