Skip to content

horizonwiki/fire

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

20 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Fire >_

Terminal fire animation written in Rust.

Fire CLI Splash


๐ŸŒ Language / ะฏะทั‹ะบ

๐Ÿ‡ท๐Ÿ‡บ ะ ัƒััะบะธะน ย ยทย  ๐Ÿ‡บ๐Ÿ‡ธ English


โ˜๏ธ Overview

Fire CLI is an ultra-lightweight utility written in Rust that turns your terminal into a cozy fireplace. Thanks to direct buffer manipulation and zero heavy dependencies, the animation stays smooth even on the weakest hardware.

Why is this cool?

  • OS-Agnostic: Works anywhere Rust and libc are supported โ€” Windows, macOS, Linux distros, or BSD.
  • Zero Logic Clutter: All visuals are built on standard output streams, guaranteeing operation in minimalist environments.

โœจ Key Features

Feature Description
๐ŸŽš๏ธ Customization Full control over burn speed and flame intensity.
๐ŸŽจ Themes A set of preset color schemes โ€” from classic fire to magical blue.
๐ŸŒš Monochrome A dedicated mode for fans of classic ASCII art without color.
๐Ÿš€ Performance Minimal resource usage thanks to the efficient Rust engine.

Tip

ASCII Engine: The fire visualization is based on ANSI escape sequences. For a perfect gradient, your terminal must support 24-bit color (TrueColor).


๐Ÿ’ป Terminal Compatibility

On legacy systems (Windows 10 and below), standard consoles like cmd.exe or PowerShell.exe often struggle with intensive dynamic output, causing several visual issues:

  • โš ๏ธ Artifacts: "Garbage" control characters like โ†[0K appearing on top of the animation.
  • ๐Ÿ“‰ Tearing: Slow stream processing causes noticeable frame tearing and flickering.
  • ๐Ÿšซ TrueColor issues: Older consoles do not support 24-bit color.

For a flawless picture, use any modern terminal with Virtual Terminal (VT) Sequence support:

  • ๐ŸŽจ Recommended: Windows Terminal, Alacritty, or WezTerm.
  • ๐Ÿš€ Also great: Kitty, Foot, Konsole, or any other emulator with 24-bit color support.
  • ๐Ÿ› ๏ธ Key requirement: The terminal must correctly handle control codes for the Rust engine's magic to work smoothly.

Tip

If you see strange symbols like โ†[0K or the animation stutters โ€” your current terminal is technically outdated. Time to upgrade!


๐Ÿ› ๏ธ Building and Installation

โ• To compile and run Fire CLI, you need an up-to-date Rust toolchain (cargo, rustc) installed.

๐Ÿš€ Installation (Recommended)

Install via Cargo:

cargo install fire-cli-rs

Works on Linux, macOS, and Windows โ€” Cargo will compile the binary for your system automatically.


1. Building from Source

Clone the repository and build an optimized binary:

# Clone the repository
git clone https://github.com/horizonwiki/fire
cd fire

# Build the release version
cargo build --release

โ• After the build completes, the executable will be located in the /target/release/ directory.

2. Installing System-Wide

๐Ÿง Linux & macOS

Copy the compiled binary to a standard system directory:

sudo cp target/release/fire-cli /usr/local/bin/

๐ŸชŸ Windows

  1. Create a folder for your utilities (e.g., C:\bin) and move fire-cli.exe from target\release\ there.
  2. Press Win + R, type sysdm.cpl, go to Advanced โ†’ Environment Variables.
  3. Under "User environment variables", find Path, click "Edit", and add the path to your folder (e.g., C:\bin).
  4. Restart your terminal for the changes to take effect.

Tip

If you use the winget package manager, a one-command installation will be available in the future!


๐Ÿ“ฅ Download

If you don't want to build from source, use the pre-built binaries:

๐Ÿ“ฆ Direct Download (GitHub Releases)

Download the compiled binary for your architecture from the Releases page.

  • Windows: Download fire-cli.exe, move it to a convenient folder, and add that folder to your system PATH.
  • Linux/macOS: Download fire-cli, make it executable (chmod +x fire-cli), and move it to /usr/local/bin/.

๐Ÿง Linux

Arch Linux (AUR)

yay -S fire-cli

Alternatively, use any other AUR helper like paru.


๐ŸŽฎ Usage & Controls

Launch the animation with the simple fire-cli command. Use the following flags for fine-tuning:

โš™๏ธ Launch Options

Flag Full Name Description Values
-f --fps Set the frame rate 15โ€“120 (default: 30)
-t --theme Set theme (default: std) โ€”
-n-c --no-color Disable colors (ASCII mode) โ€”
-h --help Show the help menu โ€”
-v --version Show version info โ€”

๐ŸŽจ Themes

Tip

Usage: -t or --theme [name]

Theme Preview Description
ash ash monochrome smoke & gray fire
aurora aurora green-teal northern lights
blue blue blue neon fire
classic classic alternative classic fire
copper copper turquoise copper-oxide flame
crimson crimson aggressive crimson-red fire
dusk dusk warm orange-purple sunset fire
ember ember glowing amber coals
emerald emerald deep emerald chemical fire
forest forest mystical green fire
frost frost cold blue-white icy fire
ghost ghost ethereal violet magic flame
gold gold luxury metallic golden shimmer
ice ice ice fire
magma magma viscous glow of molten lava
nebula nebula cosmic pink & blue fire
pink pink pink neon fire
plasma plasma electric indigo plasma
rainbow rainbow multicolor spectrum fire
sakura sakura soft pink cherry blossom fire
solar solar blinding white-hot solar flares
std std classic fire
sulfur sulfur ghostly blue flame
custom โ€” use a user-defined theme

Custom Theme Format:

custom:#hex.#hex.#hex.#hex

Provide 1 to 4 HEX colors separated by dots (e.g., custom:#ff0000.#00ff00)

๐Ÿ’ก Example Commands

fire-cli -f 60
fire-cli --theme copper --fps 45
fire-cli -t custom:#ff0055.#ffcc00.#ffffff

โŒจ๏ธ Controls

  • ESC or Ctrl+C โ€” Exit the program.

๐Ÿ“– Contribution Guide

If you have any suggestions, fixes, or patches to share, feel free to:

  • Open Issues and label them where possible, to make it easy to categorize features and bugs.
  • If you've solved a problem or made valuable changes, open a Pull Request on GitHub.

๐Ÿ“ท Captures

๐Ÿ”น Screenshots

Fire CLI Screenshot

๐Ÿ”น Screencasts

Fire CLI Screencast


โšก Maintainers


๐Ÿ“„ License

This software is provided under the Apache License 2.0. View License