Yazi
This page covers the official Yazi plugin for rim.
Its job is simple:
- expose one plugin command:
plugin.yazi.yazi - call the external
yaziprogram with--chooser-file - let Yazi return the selected path
- ask
rimto open that file
So the plugin is a file picker bridge, not a file manager embedded inside rim.
Yazi Prerequisite
Section titled “Yazi Prerequisite”Before using the Yazi plugin, install Yazi itself.
Use the official Yazi installation guide:
The plugin runs the yazi command directly. If yazi is missing from PATH, the command will fail at runtime.
Install The Yazi Plugin
Section titled “Install The Yazi Plugin”Step 1: Run the install command
Section titled “Step 1: Run the install command”rim plugin install github zooeywm/rim --package rim-plugin-yaziYou can also use a full GitHub URL:
rim plugin install github https://github.com/zooeywm/rim --package rim-plugin-yaziBy default, rim builds with the release profile. If you explicitly want a debug build:
rim plugin install github zooeywm/rim --package rim-plugin-yazi --profile debugStep 2: Let rim verify the toolchain
Section titled “Step 2: Let rim verify the toolchain”Before cloning and compiling, rim checks:
gitcargorustup- the Rust target
wasm32-wasip2
If one of them is missing, rim stops and tells you what to install.
If the Wasm target is missing, install it with:
rustup target add wasm32-wasip2Step 3: Let rim install the Wasm artifact
Section titled “Step 3: Let rim install the Wasm artifact”On success, rim copies the built .wasm file into your user plugin directory:
- Linux and other Unix-like systems:
~/.config/rim/plugins/ - macOS:
~/Library/Application Support/rim/plugins/ - Windows:
%AppData%\\rim\\plugins\\
Step 4: Restart rim
Section titled “Step 4: Restart rim”This step is required. Plugin discovery does not hot-reload.
Step 5: Invoke the command
Section titled “Step 5: Invoke the command”The full plugin run target is:
plugin.yazi.yaziThe plugin also exposes a default human-facing command name based on the descriptor:
YaziIn practice, after startup you can use either:
:Yazi- a custom alias from
commands.toml - a custom key binding from
keymaps.toml
Manual Fallback
Section titled “Manual Fallback”If you are developing the plugin locally or do not want rim to clone from GitHub, you can still build and copy the artifact yourself:
rustup target add wasm32-wasip2cargo build -p rim-plugin-yazi --target wasm32-wasip2mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/rim/plugins"cp target/wasm32-wasip2/debug/rim_plugin_yazi.wasm "${XDG_CONFIG_HOME:-$HOME/.config}/rim/plugins/"Recommended User Setup
Section titled “Recommended User Setup”Command alias
Section titled “Command alias”Add this to commands.toml:
[command]commands = [ { name = "y", run = "plugin.yazi.yazi", desc = "Open Yazi picker" },]Then you can open the picker with:
:yKey binding
Section titled “Key binding”Add this to keymaps.toml:
[mode.normal]keymap = [ { on = "<leader>y", run = "plugin.yazi.yazi", desc = "Open Yazi picker" },]That gives you a stable keyboard path even if you never use the command line.
What Happens When It Runs
Section titled “What Happens When It Runs”The Yazi plugin launches:
yazi --chooser-file ""rim reserves the empty third argument position and lets the file picker flow write the chooser path there.
After you confirm a file in Yazi:
- Yazi writes the chosen file path to the chooser file
rimreads that pathrimopens the selected file in the editor
If you cancel, rim keeps running and reports the open action as cancelled.
Failure Cases
Section titled “Failure Cases”Typical failure cases are:
git,cargo, orrustupis not installed- the Rust target
wasm32-wasip2is not installed yaziis not installedyaziis installed but not inPATH- the wrong Cargo package name was passed to
--package - the plugin
.wasmfile was copied to the wrong directory - the plugin file exists, but
rimwas not restarted - the
.wasmfile is corrupted or not a valid plugin component - another plugin with the same plugin id is already loaded
When plugin discovery fails, rim reports a warning instead of crashing.
Difference From Yazi Plugins
Section titled “Difference From Yazi Plugins”This is the most important conceptual difference:
- Yazi plugins are Lua-based and live in named plugin directories under the Yazi config directory
rimplugins are Wasm component files placed directly inrim/plugins/
So while Yazi’s docs are a good reference for end-user plugin expectations, do not copy Yazi’s plugin folder structure into rim.