termcinema-cli 0.1.0

🎬 Animated terminal-to-SVG renderer CLI for the termcinema project
Documentation
# 🎬 TermCinema CLI

Turn your terminal sessions into cinematic **SVG animations** β€” perfect for docs, blog posts, presentations, or just showing off your CLI aesthetics.

> βš™οΈ Powered by [`termcinema-engine`]../engine 
> 
> 🧱 Built in Rust · Embeddable via WebAssembly, Python (and more soon)

---

## ✨ Features

- βœ… Render shell-like text as animated SVG
- 🎨 9+ built-in retro & modern terminal themes
- ⌨️ Typing animation with speed presets or per-frame control
- πŸ”  Custom font, color, layout, alignment
- πŸ§‘β€πŸŽ¨ Custom cursor (e.g. `|`, `β–‹`, `⚑`)
- πŸ”© Embeddable as Rust/WASM library


## πŸ“¦ Installation

```bash
cargo install termcinema-cli
```


## πŸš€ Usage

### ▢️ Basic

```bash
termcinema -i 'echo "Hi, TermCinema!"' -o out.svg
```

### πŸ“œ From script file

```bash
termcinema -s ./demo.txt -o out.svg
```

### 🚰 Pipe Mode (Stdin)

```bash
echo "The quick brown fox..." | termcinema -o out.svg
```

### 🎨 Themes

```bash
termcinema -i "Hello" --theme "dos_classic"
termcinema --list-themes
```

### πŸ”‘ Font Family

```bash
termcinema -i "Hello" --font-family "JetBrains Mono"
termcinema --list-fonts
```

#### Tested Monospaced Fonts

| Font Name               | Built-in?   | Embeddable?   | Notes                                        |
|-------------------------|-------------|---------------|----------------------------------------------|
| **PxPlus IBM VGA8**     | ❌          | βœ… Yes        | Pixel-perfect retro feel                     |
| **JetBrains Mono**      | ❌          | βœ… Yes        | Modern, developer-oriented                   |
| **Fira Code**           | ❌          | βœ… Yes        | Monospaced font with programming ligatures   |
| **Source Code Pro**     | ❌          | βœ… Yes        | Clean and balanced, from Adobe               |
| **Cascadia Mono**       | ❌          | βœ… Yes        | Microsoft’s modern monospaced font           |
| **Courier New**         | βœ… System   | ⚠️ Wide       | Technically monospaced but visually outdated |
| **Monospace (generic)** | βœ… System   | ⚠️ Unreliable | Often mapped to variable-width fonts         |

> πŸ’‘ Prefer the β€œβœ… Yes” fonts above for best SVG alignment and retro aesthetics.

### ⚑ Speed Control

```bash
termcinema -i "Hello" --speed fast
termcinema -i "Hello" --frame-delay 120
```


## πŸ–Ό Demo Gallery

Dive into **12+ terminal styles** β€” Bash, Zsh, PowerShell, Python, Git, SQL, and more β€” all pre-rendered as cinematic SVG animations.

πŸ“‚ Full demo files in [examples/README.md](examples/cli_demo/README.md)

<img src="examples/cli_demo/svg/demo1.svg" alt="Unix Bash Example" width="100%">

| Terminal Style    |
| ----------------- |
| 🐧 Unix Shell     |
| 🍎 macOS Zsh      |
| πŸͺŸ PowerShell     |
| 🐍 Python REPL    |
| 🟒 Node.js REPL   |
| πŸŒ™ Lua REPL       |
| ❀️ Redis CLI      |
| 🐬 MySQL CLI      |
| 🐘 PostgreSQL CLI |
| 🧬 Git Log        |
| 🌐 Switch Console |
| πŸ“œ Script Input   |


## 🧩 Use as Library

You can use this as a Rust library:

```rust
use termcinema_cli::{CliArgs, render_svg_direct};

let args = CliArgs {
    theme: Some("retro_tty".into()),
    ..Default::default()
};

let svg = render_svg_direct("echo hello", &args).unwrap();
```

See full API on [docs.rs/termcinema-cli](https://docs.rs/termcinema-cli)


## πŸ†˜ Usage Help

Run `termcinema --help` \
Or see [docs/help.txt](docs/help.txt) for full CLI options


## πŸ”— See Also

- [Back to Project Overview]../README.md
- [docs.rs/termcinema-cli]https://docs.rs/termcinema-cli
- [Changelog]./CHANGELOG.md
- [License]./LICENSE