Skip to main content
Version: 0.3.3

yazi

Generates a Yazi flavor pack — Yazi's directory-based theme format. The output is a directory named <name>.yazi/ containing flavor.toml. Yazi loads flavor packs by name from ~/.config/yazi/flavors/ when its theme.toml references them.

Installation

Built into tinct — nothing to install separately. tinct generate -o yazi works out of the box.

Quick start

tinct generate -i image -p ~/Pictures/wallpaper.jpg -o yazi

The first time, you also need to point Yazi at the flavor — see Integration.

Generated files

FilePathRole
flavor.toml~/.config/yazi/flavors/tinct.yazi/flavor.tomlYazi flavor pack manifest. Defines colours for the manager pane, status bar, modes, selection, input/confirm/pick prompts, which-key, help, tasks, notifications, and per-filetype rules.

The flavor pack's directory name (tinct.yazi) must end in .yazi — that's part of Yazi's flavor pack naming convention. The directory name without the .yazi suffix is the value you put in theme.toml.

The flavor name defaults to tinct. With --yazi.theme-name=mything the output dir becomes ~/.config/yazi/flavors/mything.yazi/ and you reference it as "mything".

Integration

In ~/.config/yazi/theme.toml, activate the flavor:

[flavor]
dark = "tinct"
# light = "tinct" # optional: use the same flavor in light mode

Yazi resolves "tinct" to ~/.config/yazi/flavors/tinct.yazi/. Restart any running Yazi instances to pick up the change.

Reload behaviour

Automatic

None — Hooks().Reload is nil. Yazi only reads its theme on startup; it does not watch the flavors directory for changes.

Manual fallback

Quit and relaunch Yazi (q, then yazi again). Running instances will continue using the previously loaded flavor until restarted.

Uninstall / revert

  1. Remove the flavor reference from ~/.config/yazi/theme.toml: delete the dark = "tinct" (and/or light = "tinct") line, or change it to another flavor name (e.g. dark = "default-dark").

  2. Delete the generated flavor pack:

    rm -rf ~/.config/yazi/flavors/tinct.yazi

    Note: the output directory is the flavor pack, not just flavor.toml. Use rm -rf against the whole .yazi directory.

  3. Reload to drop the theme: quit and relaunch Yazi.

  4. External state: this plugin only writes to ~/.config/yazi/flavors/<name>.yazi/. No further cleanup is required.

Flags

FlagDefaultDescription
--yazi.output-dir~/.config/yazi/flavors/tinct.yaziOverride the output directory (must end in .yazi)
--yazi.theme-nametinctFlavor name; output directory becomes <name>.yazi and you reference it as <name> in theme.toml

Colour role mapping

Yazi keyTinct roleNotes
[mgr] cwd.fgforegroundCurrent working directory text
[mgr] find_keyword, find_positionwarningSearch highlights
[mgr] marker_copiedsuccessYanked-to-copy marker
[mgr] marker_cutdangerYanked-to-cut marker
[mgr] marker_markedinfoMulti-selection marker
[mgr] marker_selectedaccent1Active selection marker
[mgr] count_copied/cut/selectedonSuccess/success, onDanger/danger, onAccent1/accent1Selection counters
[mgr] border_styleoutlinePane borders
[mgr] hovered, tab_activeonAccent1 / accent1Hover and active tab
[mgr] tab_inactiveforegroundMuted / surfaceContainerInactive tabs
[mgr.folder_offset], [mgr.symlink_offset]accent1, accent2Folder / symlink size column
[status] separator_stylesurfaceContainerHigh / surfaceContainerPowerline separators
[status] mode_normalbackground / accent1Normal mode badge
[status] mode_selectbackground / warningSelect mode badge
[status] mode_unsetbackground / dangerUnset mode badge
[status] progress_normalaccent1 / surfaceContainerProgress bar (in-flight)
[status] progress_errordanger / surfaceContainerProgress bar (failed)
[status] permissions_t/r/w/x/saccent1, warning, danger, success, foregroundMutedFile-permission column
[select], [input], [confirm], [pick] borders/titlesaccent1 (+ accent2 for pick active)Prompt UI
[which] masksurfaceContainerLowWhich-key overlay backdrop
[which] cand, desc, rest, separator_styleaccent2, accent1, foregroundMuted, outlineWhich-key text
[help] on/exec/desc/hovered/footeraccent1, accent2, foregroundMuted, surfaceContainerHigh, background/foregroundHelp screen
[tasks] borderaccent1Task manager border
[notify] title_info/warn/errorinfo, warning, dangerNotification titles
[filetype] rulesaccent2/3/4 + warning + accent1 + foregroundimage/video/audio MIME, archives, dirs, fallback

Customising the template

Dump the default template to override it:

tinct plugins templates dump -o yazi -l ~/.config/tinct/templates/yazi

This writes ~/.config/tinct/templates/yazi/flavor.toml.tmpl. Tinct uses your version in preference to the embedded default.

See the templating reference for available functions.

Troubleshooting

Yazi shows the default theme

Two checks:

grep -A2 '^\[flavor\]' ~/.config/yazi/theme.toml
ls ~/.config/yazi/flavors/tinct.yazi/flavor.toml

If the theme.toml block is missing or points at a different name, fix it. If the flavor pack directory or flavor.toml is missing, re-run tinct generate -o yazi.

Restarting Yazi doesn't change anything

Yazi reads theme.toml and the flavor pack once at startup. If you have Yazi running across tmux panes, restart each instance. Multiplexers like tmux do not detach Yazi's already-loaded theme.

Wrong directory used

If you set --yazi.output-dir to a path that does not end in .yazi, Yazi will still load flavor.toml from it, but the activation key in theme.toml is the directory name minus .yazi. Keep the suffix; it's load-bearing.

Custom flavor name not found by Yazi

When using --yazi.theme-name=foo, the generated dir is foo.yazi and your theme.toml must say dark = "foo", not "tinct".

  • neovim — editor theming for users who pair Yazi with Neovim as a file manager workflow.
  • ghostty, kitty, wezterm — terminal themes for the host terminal Yazi runs inside.