Harmony chat client in the terminal!

Overview

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
You might also like...
A dead simple ANSI terminal color painting library for Rust.

yansi A dead simple ANSI terminal color painting library for Rust. use yansi::Paint; print!("{} light, {} light!", Paint::green("Green"), Paint::red(

(Rust) Coloring terminal so simple you already know how to do it !

Colored Coloring terminal so simple, you already know how to do it! "this is blue".blue(); "this is red".red(); "this is red on blue".red(

Cross platform terminal library rust
Cross platform terminal library rust

Cross-platform Terminal Manipulation Library Crossterm is a pure-rust, terminal manipulation library that makes it possible to write cross-platform te

Build terminal user interfaces and dashboards using Rust
Build terminal user interfaces and dashboards using Rust

tui-rs tui-rs is a Rust library to build rich terminal user interfaces and dashboards. It is heavily inspired by the Javascript library blessed-contri

Currency exchange rates in your terminal

Usage example Rates is a scriptable CLI tool that brings currency exchange rates right into your terminal and supports 30+ fiat and 10K+ crypto currencies.

My terminal emulator
My terminal emulator

Miro A GPU-accelerated terminal emulator written in Rust. miro -t pika miro -t kirby miro -t mario miro -t sonic Building from source

Alacritty - A fast, cross-platform, OpenGL terminal emulator
Alacritty - A fast, cross-platform, OpenGL terminal emulator

Alacritty is a modern terminal emulator that comes with sensible defaults, but allows for extensive configuration. By integrating with other applications, rather than reimplementing their functionality, it manages to provide a flexible set of features with high performance. The supported platforms currently consist of BSD, Linux, macOS and Windows.

Terminal-based typing test.
Terminal-based typing test.

ttyper Ttyper is a terminal-based typing test built with Rust and tui-rs. installation With Cargo: cargo install ttyper usage For usage instructions,

hackernews_tui is a Terminal UI to browse Hacker News with vim-like key bindings.
hackernews_tui is a Terminal UI to browse Hacker News with vim-like key bindings.

hackernews_tui is written in Rust with the help of Cursive TUI library. It uses HN Algolia search APIs to get Hacker News data.

Owner
jan Jenwa
Hi! I'm a student of programming and mathematics. I also like (con)linguistics. (she/her)
jan Jenwa
Twitch chat in the terminal.

Twitch chat in the terminal. What it looks like: Keybinds: Normal mode Key Description c Go to the chat window chat. i Enter input mode for sending me

null 151 Nov 30, 2022
Tree-based TUI chat client

cove Cove is a TUI client for euphoria.io, a threaded real-time chat platform. It runs on Linux, Windows and macOS. Manual installation This section c

null 8 Nov 16, 2022
A multi-threaded Twitch chat archiving and downloading tool.

Twitch Chat Downloader ??️ tcd is a multi-threaded Twitch Chat Downloader built in Rust ?? . Usage: tcd [OPTIONS] <--channel <CHANNEL>|--video <VIDEO>

Matthew Polak 3 Nov 16, 2022
Provides a mock Ambi client that emulates real sensor hardware such as an Edge client

ambi_mock_client Provides a mock Ambi client that emulates real sensor hardware such as an Edge client. Usage You must have Rust installed to build am

Rust Never Sleeps 2 Apr 1, 2022
:large_orange_diamond: Build beautiful terminal tables with automatic content wrapping

Comfy-table Comfy-table tries to provide utility for building beautiful tables, while being easy to use. Features: Dynamic arrangement of content to a

Arne Beer 499 Nov 24, 2022
🛎 60+ Elegant terminal spinners for Rust

Spinners - ?? 60+ Elegant terminal spinners for Rust ❤️ Shameless plug Charts, simple as a URL. No more server-side rendering pain, 1 url = 1 chart Lo

Francois-Guillaume Ribreau 425 Nov 27, 2022
Low-level Rust library for implementing terminal command line interface, like in embedded systems.

Terminal CLI Need to build an interactive command prompt, with commands, properties and with full autocomplete? This is for you. Example, output only

HashMismatch 47 Nov 25, 2022
Rust library for ANSI terminal colours and styles (bold, underline)

rust-ansi-term This is a library for controlling colours and formatting, such as red bold text or blue underlined text, on ANSI terminals. View the Ru

Benjamin Sago 403 Dec 3, 2022
Cross-platform Rust library for coloring and formatting terminal output

Coloring terminal output Documentation term-painter is a cross-platform (i.e. also non-ANSI terminals) Rust library for coloring and formatting termin

Lukas Kalbertodt 75 Jul 28, 2022
create and test the style and formatting of text in your terminal applications

description: create and test the style and formatting of text in your terminal applications docs: https://docs.rs/termstyle termstyle is a library tha

Rett Berg 18 Jul 3, 2021