Yazi features a powerful plugin system built on Lua, allowing you to extend and customize every aspect of the file manager. Plugins can add new functionality, customize the UI, preview files, and fetch metadata.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/sxyazi/yazi/llms.txt
Use this file to discover all available pages before exploring further.
Plugin Types
Yazi supports four main types of plugins:1. UI Plugins (Components)
UI plugins customize the visual interface by overriding built-in components:- Header - Top bar showing current directory and status
- Status - Bottom bar with file info and position
- Entity - Individual file/folder rendering
- Tab - Tab content area
- Tabs - Tab bar
- And more…
2. Functional Plugins
Functional plugins add new commands and behaviors:- Interactive commands (e.g.,
zoxidefor directory jumping) - Batch operations (e.g.,
extractfor archive extraction) - Integration with external tools (e.g.,
fzffor fuzzy finding) - Custom file operations
entry() function that executes when called.
3. Previewers
Previewer plugins generate file previews in the preview pane:- Text/Code - Syntax highlighting for code files
- Images - Display images inline
- Videos - Extract and show video thumbnails
- Archives - List archive contents
- PDFs - Convert PDF pages to images
- Folders - Show folder contents
peek(), seek(), and optionally preload() methods.
4. Fetchers
Fetcher plugins retrieve file metadata asynchronously:- MIME types - Detect file types
- Git status - Show version control info
- File metadata - Extract custom properties
fetch() method that processes files in batches.
5. Spotters
Spotter plugins provide detailed file information in the info panel:- Show file properties and metadata
- Display image dimensions and format
- Video codec and duration info
- Custom file analysis
spot() method that returns formatted data.
Plugin Configuration
Plugins are configured inyazi.toml under the [plugin] section:
Plugin Matching
Plugins can be matched by:- URL patterns -
url = "*/*.jpg",url = "*/" - MIME types -
mime = "image/*",mime = "text/*" - Priority -
prio = "high"(for fetchers)
Plugin Location
Plugins are stored in:- Linux/macOS:
~/.config/yazi/plugins/ - Windows:
%APPDATA%\yazi\config\plugins\
Plugin Structure
Each plugin is a directory or single.lua file:
init.lua by default.
Calling Plugins
From keymap.toml
Bind plugins to keys:From Command Line
Call plugins with arguments:From Other Plugins
Plugins can call each other:Next Steps
Creating Plugins
Learn how to create your own plugins
UI Plugins
Customize Yazi’s appearance
Functional Plugins
Add new commands and behaviors
Previewers
Create custom file previewers
Fetchers
Build metadata fetchers