# vivid

> Generates LS_COLORS values from YAML filetype databases and color themes, for ls, tree, fd, bfs, dust and other tools.

Stars: 2.3k · Language: Rust · License: Apache-2.0 · Categories: Shell

- Repository: https://github.com/sharkdp/vivid
- Page: https://www.trmn.sh/tools/vivid

## Install

- Homebrew: `brew install vivid`
- Arch Linux (pacman): `pacman -S vivid`
- Cargo: `cargo install vivid`

## Overview

vivid is a generator for the LS_COLORS environment variable, which controls colorized output in ls, tree, fd, bfs, dust and other tools. You run `vivid generate <theme>` and export the result in your shell RC file, for example `export LS_COLORS="$(vivid generate molokai)"`. Fish is supported with `set -gx LS_COLORS (vivid generate molokai)`.

Unlike dircolors, vivid keeps the filetype database and the color themes in separate YAML files. This lets you change or customize a theme without touching the list of file extensions. Colors are written in RRGGBB format instead of raw ANSI escape codes. vivid translates them to 24-bit truecolor codes by default, or to interpolated 8-bit codes with `--color-mode 8-bit` (`-m 8-bit`) for terminals without truecolor support.

Bundled themes include snazzy, molokai, ayu and lava. `vivid themes` lists all available themes. An `ansi` theme uses your terminal's 16-color palette, so colors follow your terminal theme when you switch between light and dark mode. Custom `filetypes.yml` databases can be placed in `/usr/share/vivid`, `$HOME/.config/vivid` or `$XDG_CONFIG_HOME/vivid` on POSIX systems, or in `%APPDATA%\vivid` on Windows. Custom themes go in a `themes` subfolder, or you can pass a path directly with `vivid generate path/to/my_theme.yml`.

It is aimed at developers and sysadmins who want consistent, customizable file-type coloring in the terminal. On macOS, the BSD `ls` ignores LS_COLORS, so the README suggests using GNU `ls` from coreutils.

### Installation

```bash
# via Homebrew
brew install vivid
```

```bash
# via Arch Linux (pacman)
pacman -S vivid
```

```bash
# via Cargo
cargo install vivid
```

![vivid snazzy theme](https://media.trmn.sh/cached/991f7cb2549607886bf9b187ce0afd0e89a8d4f5444cfb522ca2941fe38eb228.png)

![vivid molokai theme](https://media.trmn.sh/cached/bd2ecb271fd28927ea9099f0fea894e41c9a707deab28034c36e0af4a0931bbd.png)

![vivid lava theme](https://media.trmn.sh/cached/008716b3d48b3d9e6976a3f15a767bbb74a53977cba3bc59f4da566483818605.png)

## Alternatives

- [McFly](https://www.trmn.sh/tools/mcfly.md): Replaces ctrl-r shell history search with a full-screen search ranked by a small neural network using directory, prior commands, and exit status. (Rust, 7.8k stars)
- [genact](https://www.trmn.sh/tools/genact.md): Terminal program that prints fake activity output (compilers, builds, botnets, downloads) to look busy. Runs natively or in a browser via WebAssembly. (Rust, 12.2k stars)
- [atuin](https://www.trmn.sh/tools/atuin.md): Shell history management with SQLite storage, search interface, and encrypted sync across machines (Rust, 32.1k stars)
- [fish](https://www.trmn.sh/tools/fish.md): Interactive command line shell with syntax highlighting, autosuggestions, and tab completions that work without configuration (Rust, 34.4k stars)
- [zoxide](https://www.trmn.sh/tools/zoxide.md): Smart cd replacement that remembers frequently used directories for quick navigation (Rust, 40.3k stars)

---

Canonical: https://www.trmn.sh/tools/vivid
