# Yazi changelog > A blazing-fast terminal file manager written in Rust, with async I/O and rich previews. - Vendor: yazi-rs - Category: Developer Tools - Platforms: Desktop - Official site: https://yazi-rs.github.io - Tracked by: What's New (https://whatsnew.fyi/product/yazi) - Harvested from: GitHub (sxyazi/yazi) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### v26.8.15 - Date: 2026-08-15 - Version: v26.8.15 - Original notes: https://github.com/sxyazi/yazi/releases/tag/v26.8.15 - Permalink: https://whatsnew.fyi/product/yazi/releases/v26.8.15 - Labels: Platforms: Desktop - **added** — Drag and drop support - **added** — Trash bin functionality - **added** — Bulk create operation - **added** — Help menu converted to command palette - **added** — Input history - **added** — Automatic dark/light theme switching - **added** — Experimental %y, %Y, %t, %T, %yN, %YN, %tN, %TN shell formatting parameters - **added** — Custom VFS provider - **added** — Visual mode support for wraparound scrolling - **added** — H/M/L Vim-like motion for moving cursor relative to viewport - **added** — Context-aware icons for inputs - **added** — Show file icons in trash/delete/overwrite confirmations - **added** — Dynamic keymap Lua API - **added** — Dynamic Lua API for preloader, spotter, fetcher - **added** — Configurable border for the which component - **added** — Official APT repository for Debian and Ubuntu - **added** — New --follow option for the link action - **added** — New ui.Input element - **added** — New theme DDS event for plugins to watch theme reloads - **added** — Preview images in Zellij via kitty graphics protocol - **added** — Image preview with Überzug++ on Niri - **changed** — Rename SFTP sections in vfs.toml from [services.domain] to [sftp.domain] - **changed** — Rename to - **changed** — Make rt.term.light a function that returns the latest color scheme on each call - **changed** — Remove Url.is_archive - archive:// is no longer built in and can now be registered by plugins - **changed** — Make mgr::Yanked, tab::Selected, and the @yank DDS event return File instead of Url from __pairs() - **changed** — Remove help:filter action since the filter input is now always available - **changed** — Update [help] of theme.toml: supersede on with chord, supersede run and desc with action, remove footer - **changed** — Remove Legacy Console Mode on Windows - **deprecated** — Deprecate copy dirname in favor of copy dirpath - **deprecated** — Deprecate backward --far and forward --far in favor of backward wide and forward wide - **deprecated** — Deprecate tab::Mode.is_visual in favor of the new tab::Mode.is_normal - **deprecated** — Deprecate Url.is_regular, Url.is_search, and Url.domain in favor of Url.spec.is_regular, Url.spec.is_search, and Url.spec.domain - **fixed** — Refresh file list after deleting a file from search view - **fixed** — Work around image previews broken by a tmux 3.7b redraw bug - **fixed** — Normalize \?\-prefixed Verbatim paths when creating relative symlinks on Windows - **fixed** — Keep package hashes indifferent to line endings when ya pkg pulls packages - **fixed** — Use WebP as magick preset preloader cache format to keep image transparency - **fixed** — Use cleaned and normalized $PWD as startup CWD to avoid MSYS2/git-bash path quirks ###### Added - Drag and drop ([#4005], [#4225]) - Trash bin ([#4144], [#4204], [#4212]) - Bulk create ([#3793]) - Make help menu a command palette ([#4074]) - Input history ([#4104]) - Automatic dark/light theme switching ([#4196]) - Experimental `%y`, `%Y`, `%t`, `%T`, `%yN`, `%YN`, `%tN`, `%TN` shell formatting parameters ([#4108]) - Custom VFS provider ([#4118]) - Make visual mode support wraparound scrolling ([#4101]) - H/M/L Vim-like motion for moving cursor relative to viewport ([#3970]) - Context-aware icons for inputs ([#4080]) - Show file icons in trash/delete/overwrite confirmations ([#4096]) - Dynamic keymap Lua API ([#4031]) - Dynamic Lua API for preloader, spotter, fetcher ([#4235]) - Configurable border for the which component ([#4189]) - Official APT repository for Debian and Ubuntu ([#4198]) - New `--follow` option for the `link` action ([#4184]) - New `ui.Input` element ([#4040]) - New `theme` DDS event for plugins to watch theme reloads ([#4203]) - Preview images in Zellij via kitty graphics protocol ([#4216]) - Image preview with Überzug++ on Niri ([#3990]) - Unicode normalization for user regex patterns in `find`, `filter`, and `search` actions ([#4177]) - New gait for input `backward` and `forward` actions ([#4012]) ###### Changed - Rename SFTP sections in `vfs.toml` from `[services.domain]` to `[sftp.domain]` ([#4120]). - Rename `` to `` ([#3989]) - Make `rt.term.light` a function that returns the latest color scheme on each call ([#4196]) - Remove `Url.is_archive` - `archive://` is no longer built in and can now be registered by plugins ([#4118]) - Make `mgr::Yanked`, `tab::Selected`, and the `@yank` DDS event return `File` instead of `Url` from `__pairs()` ([#4096]) - Remove `help:filter` action since the filter input is now always available ([#4074]) - `[help]` of `theme.toml`: supersede `on` with `chord`, supersede `run` and `desc` with `action`, remove `footer` ([#4074]) - Remove Legacy Console Mode on Windows ([#3989]) ###### Deprecated - Deprecate `copy dirname` in favor of `copy dirpath` ([#4169]) - Deprecate `backward --far` and `forward --far` in favor of `backward wide` and `forward wide`, respectively ([#4012]) - Deprecate `tab::Mode.is_visual` in favor of the new `tab::Mode.is_normal` ([#4101]) - Deprecate `Url.is_regular`, `Url.is_search`, and `Url.domain` in favor of `Url.spec.is_regular`, `Url.spec.is_search`, and `Url.spec.domain`, respectively ([#4118]) ###### Fixed - Refresh file list after deleting a file from search view ([#4174]) - Work around image previews broken by a `tmux` 3.7b redraw bug ([#4195]) - Normalize `\\?\`-prefixed Verbatim paths when creating relative symlinks on Windows ([#4067]) - Keep package hashes indifferent to line endings when `ya pkg` pulls packages ([#4064]) - Use WebP as `magick` preset preloader cache format to keep image transparency ([#4065]) - Use cleaned and normalized `$PWD` as startup CWD to avoid MSYS2/git-bash path quirks ([#4068]) ###### Improved - Eliminate hacks in image and UI conflict resolution ([#4022]) - Make terminal capability probing async ([#4194]) - Enable SSO (small string optimization) for custom schemes and custom styles ([#4164]) - Reduce binary size and build time ([#4228]) ### v26.5.6 - Date: 2026-05-05 - Version: v26.5.6 - Original notes: https://github.com/sxyazi/yazi/releases/tag/v26.5.6 - Permalink: https://whatsnew.fyi/product/yazi/releases/v26.5.6 - Labels: Platforms: Desktop - **added** — Custom tab name - **added** — New `--in` for `search` action to set search directory - **added** — Hover cursor over the new file after copying/cutting/linking/hardlinking/extracting - **added** — Drag-resize panes with mouse - **added** — Multi-file spotter - **added** — New `app:theme` action that hot-reload user themes/flavors - **added** — Dynamic open/opener Lua API - **added** — Dynamic previewer Lua API - **added** — Custom styles for plugins - **added** — Vim-like `lua` action that runs an inline Lua snippet - **added** — Certificate authentication for SFTP VFS provider - **added** — New `hovered` condition specifying different icons for hovered files - **added** — Allow using `ps.sub()` in `init.lua` directly without a plugin - **added** — New `ya.exec()` API and `ya exec` subcommand to execute an action and await its result - **added** — New `sort_fallback` option to control fallback sorting behavior - **added** — New `fs.access()` API to access the filesystem - **added** — New `relay-notify-push` DDS event to customize the notification handler - **added** — New `ind-app-title` DDS event to customize the app title - **added** — New `ind-hidden` and `key-hidden` DDS events to change hidden status in Lua - **added** — New `marker_symbol` option to specify the symbol used for marking files - **added** — New `--discard` for `ya pkg` that discard local changes made to packages - **changed** — Upgrade Lua to 5.5 - **changed** — Change preset t for creating tabs to tt to avoid conflict with new tr for renaming tabs - **changed** — Make `ui.Style` immutable - **changed** — Remove `title_format` in favor of new `ind-app-title` DDS event for flexible title customization - **changed** — Remove `micro_workers` and `macro_workers` in favor of finer control over concurrent workers - **changed** — Rename `id` of the fetcher rule to `group` - **deprecated** — Deprecate `fs.unique_name()` in favor of `fs.unique()` to fix a TOCTOU race condition - **fixed** — Chafa v1.18.1 causes random ghost keypresses when previewing images - **fixed** — `paste --force` doesn't work on existing read-only files with the same name - **fixed** — Be a little defensive while parsing the output of `7zz -ba` - **fixed** — Make `ya pkg` ignore default remote name in user Git config - **fixed** — Archive extraction fails for target paths with non-ASCII characters on Windows - **fixed** — Escape backslashes in ImageMagick font path parameter ###### Added - Custom tab name ([#3666]) - New `--in` for `search` action to set search directory ([#3696]) - Hover cursor over the new file after copying/cutting/linking/hardlinking/extracting ([#3846], [#3854]) - Drag-resize panes with mouse ([#3890]) - Multi-file spotter ([#3733]) - New `app:theme` action that hot-reload user themes/flavors ([#3906]) - Dynamic open/opener Lua API ([#3901]) - Dynamic previewer Lua API ([#3891]) - Custom styles for plugins ([#3934]) - Vim-like `lua` action that runs an inline Lua snippet ([#3813]) - Certificate authentication for SFTP VFS provider ([#3716]) - New `hovered` condition specifying different icons for hovered files ([#3728]) - Allow using `ps.sub()` in `init.lua` directly without a plugin ([#3638]) - New `ya.exec()` API and `ya exec` subcommand to execute an action and await its result ([#3780]) - New `sort_fallback` option to control fallback sorting behavior ([#3077]) - New `fs.access()` API to access the filesystem ([#3668]) - New `relay-notify-push` DDS event to customize the notification handler ([#3642]) - New `ind-app-title` DDS event to customize the app title ([#3684]) - New `ind-hidden` and `key-hidden` DDS events to change hidden status in Lua ([#3748]) - New `marker_symbol` option to specify the symbol used for marking files ([#3689]) - New `--discard` for `ya pkg` that discard local changes made to packages ([#3781]) - New `bulk_exit` action that customizes the prompt for bulk operations ([#3792]) - New `fs.unique()` creates a unique file or directory ([#3677]) - New `download` DDS event fires when remote files are downloaded ([#3687]) - New `ind-which-activate` DDS event to change the which component behavior ([#3608]) - New `hey` DDS event fires when static messages are restored from persistence ([#3725]) - New `cx.which` API to access the which component state ([#3617]) - New experimental `ya.co()` API that creates a coroutine ([#3757]) ###### Changed - Upgrade Lua to 5.5 ([#3633]) - Change preset t for creating tabs to tt to avoid conflict with new tr for renaming tabs ([#3666]) - Make `ui.Style` immutable ([#3862]) - Remove `title_format` in favor of new `ind-app-title` DDS event for flexible title customization ([#3684]) - Remove `micro_workers` and `macro_workers` in favor of finer control over concurrent workers ([#3661]) - Rename `id` of the fetcher rule to `group` ([#3943]) ###### Deprecated - Deprecate `fs.unique_name()` in favor of `fs.unique()` to fix a TOCTOU race condition ([#3677]) ###### Fixed - Chafa v1.18.1 causes random ghost keypresses when previewing images ([#3678]) - `paste --force` doesn't work on existing read-only files with the same name ([#3894]) - Be a little defensive while parsing the output of `7zz -ba` ([#3744]) - Make `ya pkg` ignore default remote name in user Git config ([#3648]) - Archive extraction fails for target paths with non-ASCII characters on Windows ([#3607]) - Escape backslashes in ImageMagick font path parameter ([#3708]) ###### Improved - Reduce memory allocations by using Lua 5.5 external strings ([#3634]) - Reuse previewed and spotted widgets when possible ([#3765]) - Avoid unnecessary allocations in code highlighting ([#3804]) ### v26.1.22 - Date: 2026-01-22 - Version: v26.1.22 - Original notes: https://github.com/sxyazi/yazi/releases/tag/v26.1.22 - Permalink: https://whatsnew.fyi/product/yazi/releases/v26.1.22 - Labels: Platforms: Desktop - **added** — Tree view for the preset archive previewer - **added** — Support compressed tarballs (.tar.gz, .tar.bz2, etc.) in the preset archive previewer - **added** — Check and refresh the file list when the terminal gains focus - **added** — Experimental module-level async support - **added** — Disable ANSI escape sequences in ya pkg when stdout is not a TTY - **added** — New Path.os() API creates an OS-native Path - **fixed** — Smart-case in interactive cd broken due to a typo - **fixed** — Fix shell formatting for non-spread opener rules - **fixed** — sort extension excludes directories since only files have extensions - **fixed** — Account for URL covariance in Url:join() ###### Added - Tree view for the preset archive previewer ([#3525]) - Support compressed tarballs (`.tar.gz`, `.tar.bz2`, etc.) in the preset archive previewer ([#3518]) - Check and refresh the file list when the terminal gains focus ([#3561]) - Experimental module-level async support ([#3594]) - Disable ANSI escape sequences in `ya pkg` when stdout is not a TTY ([#3566]) - New `Path.os()` API creates an OS-native `Path` ([#3541]) ###### Fixed - Smart-case in interactive `cd` broken due to a typo ([#3540]) - Fix shell formatting for non-spread opener rules ([#3532]) - `sort extension` excludes directories since only files have extensions ([#3582]) - Account for URL covariance in `Url:join()` ([#3514]) ### v26.1.4 - Date: 2026-01-04 - Version: v26.1.4 - Original notes: https://github.com/sxyazi/yazi/releases/tag/v26.1.4 - Permalink: https://whatsnew.fyi/product/yazi/releases/v26.1.4 - Labels: Platforms: Desktop - **added** — Support VFS for preset previewers that rely on external commands - **added** — Support 8-bit images in RGB, CIELAB, and GRAY color spaces - **fixed** — ya pkg fails to write package.toml when the config directory does not exist - **fixed** — A race condition generating unique filenames for concurrent file operations ###### Added - Support VFS for preset previewers that rely on external commands ([#3477]) - Support 8-bit images in RGB, CIELAB, and GRAY color spaces ([#3358]) ###### Fixed - `ya pkg` fails to write `package.toml` when the config directory does not exist ([#3482]) - A race condition generating unique filenames for concurrent file operations ([#3494]) ### v25.12.29 - Date: 2025-12-29 - Version: v25.12.29 - Original notes: https://github.com/sxyazi/yazi/releases/tag/v25.12.29 - Permalink: https://whatsnew.fyi/product/yazi/releases/v25.12.29 - Labels: Platforms: Desktop - **added** — Remote file management - **added** — Virtual file system - **added** — Shell formatting - **added** — Multi-entry support for plugin system - **added** — Zoom in or out of the preview image - **added** — Improve the UX of the pick and input components - **added** — Show progress of each task in task manager - **added** — New fs.copy() and fs.rename() APIs - **added** — New experimental ya.async() API - **added** — New overall option to set the overall background color - **added** — Rounded corners for indicator bar - **added** — New bulk_rename action always renames files with the editor - **added** — key-* DDS events to allow changing or canceling user key events - **added** — New --bg flag specifying image background color in the preset SVG and ImageMagick previewers - **added** — Filter by full path in search view instead of just filename - **added** — New casefy action for case conversion of the input content - **added** — Allow dynamic adjustment of layout ratio via rt.mgr.ratio - **added** — Support .deb packages - **added** — Support invalid UTF-8 paths throughout the codebase - **added** — Allow upgrading only specific packages with ya pkg - **added** — New duplicate DDS event for copying files - **added** — New ind-sort and key-sort DDS events to change sorting in Lua - **changed** — Rename name to url for open, fetchers, spotters, preloaders, previewers, filetype, and globs icon rules to support virtual file system - **changed** — Rename mime fetcher to mime.local, and introduce mime.dir fetcher to support folder MIME types - **changed** — Reclassify hovered and preview_hovered under [mgr] of theme.toml into [indicator] as current and preview, respectively - **removed** — Remove $0 parameter in opener rules to make the open action work under empty directories - **changed** — Return Path instead of Url from Url:strip_prefix() and File.link_to to enforce type safety - **deprecated** — Deprecate $n, $@ (*nix) and %n, %* (Windows) in shell action and opener rules in favor of new shell formatting - **deprecated** — Deprecate ya.hide, ya.render, and ya.truncate in favor of ui.hide, ui.render, and ui.truncate - **deprecated** — Deprecate position property of ya.input() in favor of pos to align with ya.confirm() and its type ui.Pos - **deprecated** — Deprecate cx.tasks.progress in favor of cx.tasks.summary - **deprecated** — Deprecate frag property of Url in favor of domain - **deprecated** — Deprecate ui.Rect.default in favor of ui.Rect {} - **fixed** — User-prepended open rules do not override presets - **fixed** — Respect user's system media opener instead of hardcoding mpv - **fixed** — Incorrect $0 and $@ parameters in shell action under empty directories - **fixed** — Avoid appending a newline when reading clipboard contents ###### Added - Remote file management ([#3396]) - Virtual file system ([#3034], [#3035], [#3094], [#3108], [#3187], [#3203]) - Shell formatting ([#3232]) - Multi-entry support for plugin system ([#3154]) - Zoom in or out of the preview image ([#2864]) - Improve the UX of the pick and input components ([#2906], [#2935]) - Show progress of each task in task manager ([#3121], [#3131], [#3134]) - New `fs.copy()` and `fs.rename()` APIs ([#3467]) - New experimental `ya.async()` API ([#3422]) - New `overall` option to set the overall background color ([#3317]) - Rounded corners for indicator bar ([#3419]) - New `bulk_rename` action always renames files with the editor ([#2984]) - `key-*` DDS events to allow changing or canceling user key events ([#3005], [#3037]) - New `--bg` specifying image background color in the preset SVG and ImageMagick previewers ([#3189]) - `filter` by full path (prefix + filename) in search view instead of just filename ([#2915]) - New `casefy` action for case conversion of the input content ([#3235]) - Allow dynamic adjustment of layout ratio via `rt.mgr.ratio` ([#2964]) - Support `.deb` packages ([#2807], [#3128], [#3209]) - Port several widespread GUI keys to the input component ([#2849]) - Support invalid UTF-8 paths throughout the codebase ([#2884], [#2889], [#2890], [#2895], [#3023], [#3290], [#3369]) - Allow upgrading only specific packages with `ya pkg` ([#2841]) - Respect the user's `image_filter` setting in the preset ImageMagick previewer ([#3286]) - New `duplicate` DDS event for copying files ([#3456]) - New `ind-sort` and `key-sort` DDS events to change sorting in Lua ([#3391]) - Allow custom mouse click behavior for individual files ([#2925]) - Display newlines in input as spaces to improve readability ([#2932]) - Fill in error messages if preview fails ([#2917], [#3383], [#3387]) - Search view shares file selection and yank state ([#2855]) - Offload mimetype fetching on opening files to the task scheduler ([#3141]) - Increase terminal response timeout to better tolerate slow SSH network environments ([#2843]) ###### Changed - Rename `name` to `url` for open, fetchers, spotters, preloaders, previewers, filetype, and `globs` icon rules to support virtual file system ([#3034]) - Rename `mime` fetcher to `mime.local`, and introduce `mime.dir` fetcher to support folder MIME types ([#3222]) - Reclassify `hovered` and `preview_hovered` under `[mgr]` of `theme.toml` into `[indicator]` as `current` and `preview`, respectively ([#3419]) - Remove `$0` parameter in opener rules to make the `open` action work under empty directories ([#3226]) - Return `Path` instead of `Url` from `Url:strip_prefix()` and `File.link_to` to enforce type safety ([#3361], [#3385]) - Use `body` instead of the term `content` in confirmations ([#2921]) - Use `u16` instead of `u32` as the type of `max_width` and `max_height` options to avoid memory exhaustion ([#3313]) - Implement `__pairs` metamethod instead of `__index` for the callback argument of the `@yank` DDS event ([#2997]) ###### Deprecated - Deprecate `$n`, `$@` (\*nix) and `%n`, `%*` (Windows) in `shell` action and opener rules in favor of new shell formatting ([#3232]) - Deprecate `ya.hide`, `ya.render`, and `ya.truncate` in favor of `ui.hide`, `ui.render`, and `ui.truncate` ([#2939]) - Deprecate `position` property of `ya.input()` in favor of `pos` to align with `ya.confirm()` and its type `ui.Pos` ([#2921]) - Deprecate `cx.tasks.progress` in favor of `cx.tasks.summary` ([#3131]) - Deprecate `frag` properly of `Url` in favor of `domain` ([#3034]) - Deprecate `ui.Rect.default` in favor of `ui.Rect {}` ([#2927]) ###### Fixed - User-prepended open rules do not override presets ([#3360]) - Respect user's system media opener instead of hardcoding `mpv` ([#2959]) - Incorrect `$0` and `$@` parameters in `shell` action under empty directories ([#3225]) - Avoid appending a newline when reading clipboard contents ([#3059]) - Renew package `rev` only when it's empty ([#32 _[Truncated at 4000 characters — full notes: https://github.com/sxyazi/yazi/releases/tag/v25.12.29]_ ### v25.5.31 - Date: 2025-05-30 - Version: v25.5.31 - Original notes: https://github.com/sxyazi/yazi/releases/tag/v25.5.31 - Permalink: https://whatsnew.fyi/product/yazi/releases/v25.5.31 - Labels: Platforms: Desktop - **fixed** — expose `ui.Wrap` - **fixed** — `forward --end-of-word` of the input now considers the mode's delta - **fixed** — carry hidden states for dummy files This is a maintenance release, focusing on bug fixes. ##### What's Changed * fix: expose `ui.Wrap` by @sxyazi in https://github.com/sxyazi/yazi/pull/2810 * fix: `forward --end-of-word` of the input should consider the mode's delta by @sxyazi in https://github.com/sxyazi/yazi/pull/2811 * fix: make every effort to carry hidden states for dummy files by @sxyazi in https://github.com/sxyazi/yazi/pull/2814 **Full Changelog**: https://github.com/sxyazi/yazi/compare/v25.5.28...v25.5.31 ### v25.5.28 - Date: 2025-05-28 - Version: v25.5.28 - Original notes: https://github.com/sxyazi/yazi/releases/tag/v25.5.28 - Permalink: https://whatsnew.fyi/product/yazi/releases/v25.5.28 - Labels: Platforms: Desktop - **deprecated** — [manager] configuration section is deprecated in favor of [mgr] - **removed** — tab_width configuration option has been removed - **changed** — tab_active and tab_inactive configuration moved under new [tabs] section - **removed** — sixel_fraction configuration option has been removed - **deprecated** — ya.mgr_emit(), ya.app_emit() and ya.input_emit() functions are deprecated - **deprecated** — ya.preview_widgets() function is deprecated - **deprecated** — Command:args() method is deprecated - **deprecated** — ya pack subcommand is deprecated - **deprecated** — LEFT, CENTER, RIGHT alignment options on ui.Line and ui.Text are deprecated - **deprecated** — NONE, TOP, RIGHT, BOTTOM, LEFT, ALL options on ui.Bar and ui.Border are deprecated - **deprecated** — WRAP_NO, WRAP, WRAP_TRIM wrap options on ui.Text are deprecated - **changed** — Redesigned tab bar as standalone single-line component decoupled from header with tab titles displayed by default and mouse tab switching support - **added** — Directory size calculation in spotter folder preview computed dynamically in real time and asynchronously - **changed** — Sixel image preview performance improved 9x by replacing neural network quantization with Wu's Color Quantizer - **added** — piper.yazi plugin to use output of any shell command as preview content - **changed** — Directory size calculation speed doubled by dividing tasks into chunks and reusing existing threads - **added** — Input component now supports password mode with obscure option - **changed** — Long filenames in file list and archive preview are now truncated with file extensions displayed at the end ##### Breaking Changes - `[manager]` is deprecated in favor of the new `[mgr]`. https://github.com/sxyazi/yazi/pull/2803 - `tab_width` has been removed as it no longer needs to be set manually. https://github.com/sxyazi/yazi/pull/2745 - `tab_active` and `tab_inactive` are moved under the new `[tabs]` section. https://github.com/sxyazi/yazi/pull/2745 - `sixel_fraction` has been removed as it's no longer needed. https://github.com/sxyazi/yazi/pull/2707 ##### Deprecated - `ya.mgr_emit()`, `ya.app_emit()` and `ya.input_emit()` are deprecated. https://github.com/sxyazi/yazi/pull/2653 - `ya.preview_widgets()` is deprecated. https://github.com/sxyazi/yazi/pull/2706 - `Command:args()` is deprecated. https://github.com/sxyazi/yazi/pull/2752 - The `ya pack` subcommand is deprecated. https://github.com/sxyazi/yazi/pull/2770 - `LEFT`, `CENTER`, `RIGHT` on `ui.Line`, `ui.Text` are deprecated. https://github.com/sxyazi/yazi/pull/2802 - `NONE`, `TOP`, `RIGHT`, `BOTTOM`, `LEFT`, `ALL` on `ui.Bar`, `ui.Border` are deprecated. https://github.com/sxyazi/yazi/pull/2802 - `WRAP_NO`, `WRAP`, `WRAP_TRIM` on `ui.Text` are deprecated. https://github.com/sxyazi/yazi/pull/2802 ##### Redesign Tabs https://github.com/sxyazi/yazi/pull/2745 decouples tabs from the header into an independent tab bar component to enhance UX: - A standalone single-line component increases the available space for displaying tabs. - Tab titles are displayed by default to increase recognizability. - Supports switching tabs via mouse for easier navigation. The new tab bar is only shown when there is more than one tab, ensuring no space is wasted for users who don't use tabs. https://github.com/user-attachments/assets/5ca33561-7558-4b9c-8b6a-9dfbc0bc8aa4 ##### Calculate Real-Time Directory Size in Spotter https://github.com/sxyazi/yazi/pull/2695 adds directory sizes to the `folder` spotter. The size is computed dynamically in real time and asynchronously, which means: - Every time a user clicks `` on a directory, the latest size is calculated. - For large directories, real-time changes in size are reported to the user, with "(?)" appended at the end to indicate that the calculation is in progress. - If the user closes the spotter or switches directories using the left/right arrow keys, any ongoing calculations will be canceled to avoid wasting resources. Also, the computed directory size will be updated in the file list: - If the user sets `linemode = size`, the latest size will be shown on the right of the file line. - If the user sets `sort_by = size`, the file list will be sorted by the latest sizes (if necessary). https://github.com/user-attachments/assets/eb2981e6-3e02-4997-abfc-83cc456a1677 ##### 9x Faster Sixel Image Preview https://github.com/sxyazi/yazi/pull/2707 replaces the existing neural network quantization algorithm with Wu's Color Quantizer, which offers [better performance](https://github.com/Ivordir/quantette/blob/main/docs/Benchmarks%20and%20Accuracy.md#time) while [maintaining comparable quality](https://github.com/Ivordir/quantette/blob/main/docs/Benchmarks%20and%20Accuracy.md#accuracydssim). Old implementation (neural network via [`color_quant`](https://github.com/image-rs/color_quant), with default `sixel_fraction = 20`) – average 189.5763999ms: ```sh time: 190.025ms time: 191.054417ms time: 187.696792ms time: 188.060791ms time: 189.381958ms time: 191.618042ms time: 192.383125ms time: 190.511291ms time: 187.8395ms time: 187.193083ms ``` New implementation (Wu - sRGB via [`quantette`](https://github.com/Ivordir/quantette)) – average 20.9199916ms: ```sh time: 21.226458ms time: 20.719542ms time: 21.207583ms time: 20.815875ms time: 21.071291ms time: 21.273459ms time: 20.811792ms time: 20.723166ms time: 20.52675ms time: 20.824ms ``` ##### [`piper.yazi` Plugin](https://github.com/yazi-rs/plugins/tree/main/piper.yazi) With [`piper.yazi`](https://github.com/yazi _[Truncated at 4000 characters — full notes: https://github.com/sxyazi/yazi/releases/tag/v25.5.28]_ ### v25.4.8 - Date: 2025-04-08 - Version: v25.4.8 - Original notes: https://github.com/sxyazi/yazi/releases/tag/v25.4.8 - Permalink: https://whatsnew.fyi/product/yazi/releases/v25.4.8 - Labels: Platforms: Desktop - **changed** — Enable wraparound navigation by default - **changed** — Replace `tasks_show` and `close_input` with `tasks:show` and `input:close` - **changed** — Convert `frag`, `name`, `stem`, `ext`, and `parent` on Url, `name` on tab::Tab, and `is_hovered` on fs::File to properties - **changed** — Swap default key bindings for `z` (zoxide) and `Z` (fzf) - **changed** — Use new `@sync peek` annotation instead of previewer's `sync = true` - **deprecated** — `ui.Padding` and `ui.Rect:padding()` are deprecated - **changed** — Switch SVG preview backend from ImageMagick to resvg with new `svg` previewer - **added** — Create custom search engines via Lua API for plugins to serve as search view file list sources - **added** — Add optional `for` field to key bindings to specify platform applicability - **changed** — Rewrite configuration parser to double startup speed - **changed** — Significantly improve performance of AVIF, HEIF, and JPEG XL previews - **changed** — Compile and cache Lua bytecode to enhance plugin system performance - **added** — Allow selecting multiple files in `fzf` with selection synchronized in Yazi - **added** — View, navigate, and deselect file selection list from Yazi within `fzf` - **added** — Support running Yazi directly in Helix with `:insert-output` without Zellij or tmux - **added** — Add new `arrow prev` and `arrow next` commands for wraparound navigation - **added** — Add new `follow` command to follow files pointed to by symlinks - **added** — Allow initializing input when opening it with commands like `rename`, `create`, `find`, `filter` - **added** — Add `` and `` keybindings to select entire line in input component - **added** — Export terminal emulator information via `rt.term` ##### Breaking Changes - Supported wraparound navigation and enabled it by default. https://github.com/sxyazi/yazi/pull/2485 - Replaced `tasks_show` and `close_input` with `tasks:show` and `input:close`. https://github.com/sxyazi/yazi/pull/2530 - `frag`, `name`, `stem`, `ext`, and `parent` on [`Url`](https://yazi-rs.github.io/docs/plugins/types#shared.url), `name` on [`tab::Tab`](https://yazi-rs.github.io/docs/plugins/types#app-data.tab-tab), and `is_hovered` on [`fs::File`](https://yazi-rs.github.io/docs/plugins/types#app-data.fs-file) are now properties. https://github.com/sxyazi/yazi/pull/2572 - Swapped the default key bindings for `z` (zoxide) and `Z` (fzf). https://github.com/sxyazi/yazi/issues/2546 - Used the new `@sync peek` annotation instead of the previewer's `sync = true`. https://github.com/sxyazi/yazi/pull/2487 ##### Deprecated - `ui.Padding` and `ui.Rect:padding()` are deprecated. https://github.com/sxyazi/yazi/pull/2574 ##### Packaging - SVG preview backend switched from ImageMagick to [`resvg`](https://github.com/linebender/resvg) and implemented as a new `svg` previewer. https://github.com/sxyazi/yazi/pull/2533, https://github.com/sxyazi/yazi/pull/2581 ##### Custom Search Engine Lua API With https://github.com/sxyazi/yazi/pull/2452, you can create custom search engines via the Lua API, meaning that plugins can serve as the source for search view file lists. A new plugin [vcs-files.yazi](https://github.com/yazi-rs/plugins/tree/main/vcs-files.yazi) is available to display the list of files changed in Git within Yazi: https://github.com/user-attachments/assets/ca6f7d55-002b-4933-b8e8-41f335b96a2b ##### Platform-Specific Key Binding https://github.com/sxyazi/yazi/pull/2526 adds a new *optional* `for` field to key bindings to specify the platform the key binding applies to. For example: ```sh { on = [ 'g', 'd' ], run = 'cd ~/dev', desc = 'Go dev', for = 'unix' }, { on = [ 'g', 'd' ], run = 'cd C:\dev', desc = 'Go C:\dev', for = 'windows' }, ``` ##### Performance Improvements This version brings several performance enhancements: - Configuration parser has been rewritten to double the startup speed. https://github.com/sxyazi/yazi/pull/2508 - AVIF, HEIF, and JPEG XL previews have seen significant performance improvements. https://github.com/sxyazi/yazi/pull/2533, thanks @ze0987 - Compiled and cached the Lua bytecode to enhance the overall performance of the plugin system. https://github.com/sxyazi/yazi/pull/2490 ##### Enhance `fzf` Integration Now, you can select multiple files in `fzf`, and the selected files will also be selected in Yazi. Also, you can now view, navigate, and deselect the file selection list from Yazi within `fzf`. https://github.com/user-attachments/assets/f7b175a3-fa73-4128-8239-f90e45f13ab3 See https://github.com/sxyazi/yazi/issues/2546 for more details. ##### Use Yazi File Manager Directly in Helix, Without Zellij or tmux https://github.com/sxyazi/yazi/pull/2461 adapted Yazi to support Helix's `:insert-output`, which means you can now run Yazi directly within Helix – it even supports image and video previews! https://github.com/user-attachments/assets/9dbf7aca-fc4e-4f9e-b554-70cadedf0484 ##### New `prev` and `next` Arguments to `arrow` for Wraparound Navigation Circular navigation is one of the long-requested features, and is now supported via the new `arrow prev` and `arrow next` commands in https://github.com/sxyazi/yazi/pull/2485. ##### New `follow` Command to Follow Files Pointed to by Symlinks https://github.com/sxyazi/yazi/pull/2543 adds support for following files pointed to by symlinks. A new key binding, `g` => `f` (follow hovered symlink), has been added to use this feature. ##### Allow Initializing Input When Opening It with Commands Like `rename`, `create`, `find`, `filter`, etc. With https://github.com/sxyazi/yazi/pull/2578, you can now customize the input box opened by commands _[Truncated at 4000 characters — full notes: https://github.com/sxyazi/yazi/releases/tag/v25.4.8]_ ### v25.3.2 - Date: 2025-03-02 - Version: v25.3.2 - Original notes: https://github.com/sxyazi/yazi/releases/tag/v25.3.2 - Permalink: https://whatsnew.fyi/product/yazi/releases/v25.3.2 - Labels: Platforms: Desktop - **added** — Expose all theme fields in Lua - **added** — Expose almost the entirety of the user's configuration in Lua - **fixed** — windows-sys features for Win32_Storage_FileSystem and Win32_System_Threading - **fixed** — Ignore stdin redirection to ensure always accessing the real tty - **fixed** — STDIN_FILENO poll always returns 0 under SSH This is a quick fix release that addresses the issue where, under SSH, terminal response sequences are not completely consumed and are leaked to the screen. Thanks to @Crdr0122 and @SpookyYomo for reporting and helping reproduce the issue! ##### What's Changed * feat: expose all theme fields in Lua by @hankertrix in https://github.com/sxyazi/yazi/pull/2405 * fix: `windows-sys` features for `Win32_Storage_FileSystem` and `Win32_System_Threading` by @sxyazi in https://github.com/sxyazi/yazi/pull/2417 * fix: ignore stdin redirection to ensure always accessing the real tty by @sxyazi in https://github.com/sxyazi/yazi/pull/2425 * fix: `STDIN_FILENO` poll always returns 0 under SSH by @sxyazi in https://github.com/sxyazi/yazi/pull/2427 * feat: expose almost the entirety of the user's configuration in Lua by @hankertrix in https://github.com/sxyazi/yazi/pull/2413 * chore: bump version to 25.3.2 by @sxyazi in https://github.com/sxyazi/yazi/pull/2428 **Full Changelog**: https://github.com/sxyazi/yazi/compare/v25.2.26...v25.3.2 ### nightly — Nightly Build - Date: 2024-08-07 - Version: nightly - Original notes: https://github.com/sxyazi/yazi/releases/tag/nightly - Permalink: https://whatsnew.fyi/product/yazi/releases/nightly - Labels: Pre-release; nightly; Platforms: Desktop From commit: 94abcfa9 Generated on: 2026-08-15 19:32 UTC Nightly changelog: https://github.com/sxyazi/yazi/blob/main/CHANGELOG.md#unreleased