# π¬ 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
### π¨ 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
| **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%">
| π§ 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)