Preview terminal color themes with realistic scenarios. Shows shell prompts, build output, git logs, diffs, docker containers, system monitors, and more -- all using ANSI colors 0-15 so your theme controls the appearance.
Useful for testing and designing terminal color schemes. Instead of staring at color swatches, see how your 16 colors actually play together across real-world terminal output.
Recorded under Catppuccin Mocha. Since diorama draws only in ANSI 0-15, the demo looks like whatever theme it runs under.
brew install tsilenzio/tap/diorama
Or with Cargo:
cargo install diorama
diorama # launch the TUI
diorama --list # print available panels and exit
diorama -p rust # jump straight to the Rust panel
diorama --offline # skip tool detection, use fallback prompts
| Flag | Short | Description |
|---|---|---|
--panel <name> |
-p |
Jump to a panel by name (case-insensitive substring) |
--offline |
Skip tool detection for faster startup | |
--list |
-l |
List available panels and exit |
| Key | Action |
|---|---|
Tab / Enter |
Toggle grid / fullscreen |
h l / ← → |
Cycle panels (fullscreen) |
j k / ↑ ↓ |
Scroll |
PgUp / PgDn |
Page scroll |
Home / End |
Jump to top / bottom |
q |
Quit |
Esc |
Exit fullscreen or quit (press twice) |
- Language prompts -- Python, Node.js, Rust, Go, C/C++, Zig, Java, C#, Ruby, Lua (detects your prompt engine: starship, oh-my-posh, p10k, etc.)
- Git -- log with branch graph, multi-file diff
- System -- docker containers, file listing, system info, process monitor
- Dev tools -- structured logs, ripgrep results, kubectl pods, JSON output
- Interactive -- Python REPL, Node REPL, sudo/root prompt contrast
- Color palette -- all 16 ANSI colors with swatches
mise install # rust, task, lefthook, cocogitto, vhs
lefthook install # git hooks
task # list tasks
task lint # rustfmt check + clippy
task test
task build # release binary
CI runs rustfmt, clippy, and the tests on every push, and commit messages and branch names get checked against conventional-commit rules on every PR.
The README GIF is rendered from demo.tape with VHS.
Regenerate it with task demo (needs diorama on PATH plus ttyd and ffmpeg,
which VHS shells out to: brew install ttyd ffmpeg).
MIT
