fire-cli-rs 0.1.3

Terminal fire animation written in Rust.
Documentation
<div align="center">

# Fire >_


### Terminal fire animation written in Rust.

<p align="center">
  <img width="1286" height="614" alt="Fire CLI Splash" src="https://raw.githubusercontent.com/horizonwiki/fire/main/.github/images/splash.png" />
</p>
</div>

---

## ☁️ 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**]https://aka.ms/terminal, [**Alacritty**]https://alacritty.org/, or [**WezTerm**]https://wezfurlong.org/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!

---

## 🎮 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]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/ash.png | monochrome smoke & gray fire |
| `aurora` | ![aurora]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/aurora.png | shifting green-teal northern lights |
| `blue` | ![blue]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/blue.png | blue neon fire |
| `classic` | ![classic]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/classic.png | alternative classic fire |
| `copper` | ![copper]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/copper.png | turquoise copper-oxide flame |
| `crimson` | ![crimson]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/crimson.png | aggressive crimson-red fire |
|`dusk` | ![dusk]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/dusk.png | warm orange-purple sunset fire |
| `ember` | ![ember]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/ember.png | glowing amber coals |
| `emerald` | ![emerald]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/emerald.png | deep emerald chemical fire |
| `forest` | ![forest]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/forest.png | mystical green fire |
| `frost` | ![frost]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/frost.png | cold blue-white icy fire |
| `ghost` | ![ghost]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/ghost.png | ethereal violet magic flame |
| `gold` | ![gold]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/gold.png | luxury metallic golden shimmer |
| `ice` | ![ice]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/ice.png | ice fire |
| `magma` | ![magma]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/magma.png | viscous glow of molten lava |
| `nebula` | ![nebula]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/nebula.png | cosmic pink & blue fire |
| `pink` | ![pink]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/pink.png | pink neon fire |
| `plasma` | ![plasma]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/plasma.png | electric indigo plasma |
| `rainbow` | ![rainbow]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/rainbow.png | multicolor spectrum fire |
| `sakura` | ![sakura]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/sakura.png | soft pink cherry blossom fire |
| `solar` | ![solar]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/solar.png | blinding white-hot solar flares |
| `std` | ![std]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/std.png | classic fire |
| `sulfur` | ![sulfur]https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/sulfur.png | 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


```bash
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.

---

<a name="captures"></a>
## 📷 Captures


### 🔹 Screenshots

<p align="center">
  <img width="800" alt="Fire CLI Screenshot" src="https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/example.png" />
</p>

### 🔹 Screencasts

<p align="center">
  <img width="800" alt="Fire CLI Screencast" src="https://raw.githubusercontent.com/horizonwiki/fire/main/.github//images/example.gif" />
</p>

## 📄 License


This software is provided under the Apache License 2.0.