charasay 🐮

Discord GitHub Workflow Status

🐈 The future of cowsay 🐮! Colorful characters saying something 🗨️.

Re-engineered cowsay in rust 🦀. Display colorful ANSI arts saying something in your terminal 💻.

Default character

Motivation

I use terminal emulator almost every day. I stare at it so much. I need some entertainment in terminal, so I found ponysay which is beautiful and giving my terminal some colors. But ponysay kind of bloated for me since I don't display all those ponies.

So, I want to make my own minimal tool to make my terminal so colorful and display the character that I like. This chance is a great time to learn rust. This project is mainly for me to learn rust and hopefully I get some feedback while this make us all happy 😁.

Installation

AUR

For Arch Linux, package available via AUR. Example install this with AUR helper:

console yay -S charasay

or

console yay -S charasay-bin

Cargo

If you have rustup or cargo, this tool available on crates.io. Install this with:

console cargo install charasay

Manual

Just donwload from the release page for your compatible Operating System, then extract the zip archive, give permission to execute on extracted file, then place it on your PATH.

Alternatively, clone this repository, then build this with cargo build --release.

Prerequisites

To display characters, your terminal needs to support true color (24-bit color). Unicode fonts are needed to render the border of speech bubble.

Usage

Display Default Character to Say Something

Run chara say something that motivating. It would display colorful cow saying something that motivating..

If message is empty, it would accept from standard input, piping would works: fortune | chara say.

Display Different Character

Run chara say -f ferris "Hello rustaceans!".

It could display external .chara files: chara say -f ~/path/test.chara "Nice".

Note: .chara files could be generated from PNG file.

I want to implement this builtin in this tool. For now, you could generate .cow file with Cowsay file converter then rename .cow into .chara.

Shell Completions

Shell completions also available with chara completions which would print out completions script to standard output. Please consult to your shell documentation on how to add completions.

Consult to Help Command

For updated usage please consult to help command.

```console $ chara --help The future of cowsay 🐮! Colorful characters saying something 🗨️.

Usage: chara

Commands: say Make the character say something completions Generate completions for shell. Default to current shell convert TODO: Convert pixel-arts PNG to chara files help Print this message or the help of the given subcommand(s)

Options: -h, --help Print help -V, --version Print version ```

```console $ chara help say Make the character say something

Usage: chara say [OPTIONS] [MESSAGE]...

Arguments: [MESSAGE]... Messages that chara want to say/think. If empty, read from STDIN

Options: -r, --random Choose random chara -a, --all Print all available chara -t, --think Make chara only thinking about it, not saying it -w, --width Max width of speech bubble. Default to terminal width -f, --file Which chara should say/think -h, --help Print help ```

Ferris

Hacking to the Gate~! 🧑‍💻🎶

MIT License © Latif Sulistyo

Acknowledgements