
Yazi is a blazing-fast terminal file manager written in Rust with async I/O.

## Features

- **Async I/O** - Non-blocking file operations
- **Fast** - Written in Rust, optimized for speed
- **Previews** - Built-in image, video, and code previews
- **Customizable** - Keybindings, themes, and plugins
- **Integration** - Works with neovim, tmux, shells

## Setup

Install via package manager:

```bash
# Via mise (recommended)
mise install yazi

# Or install script
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Then cargo install yazi-fm

# Arch Linux (AUR)
yay -S yazi
```

## Configuration

Config directory: `~/.config/yazi/`

- `yazi.toml` - General configuration
- `keymap.toml` - Key bindings
- `theme.toml` - Colors and styling

## Key Bindings

### Navigation

| Key | Action |
|-----|--------|
| `j/k` or `↓/↑` | Move down/up |
| `h/l` or `←/→` | Parent/child directory |
| `gg` | Go to top |
| `G` | Go to bottom |
| `H` | Back in history |
| `L` | Forward in history |

### File Operations

| Key | Action |
|-----|--------|
| `Space` | Select item |
| `y` | Yank (copy) |
| `x` | Cut |
| `p` | Paste |
| `d` | Delete |
| `D` | Permanent delete |
| `r` | Rename |
| `a` | Create file |
| `A` | Create directory |
| `Enter` | Open file |
| `o` | Open with specific app |

### View

| Key | Action |
|-----|--------|
| `Tab` | Switch panel |
| `~` | Go to home |
| `.` | Toggle hidden files |
| `s` | Search files |
| `S` | Search contents |
| `/` | Filter items |
| `z` | Jump to directory |
| `c` | Copy path |

## Shell Integration

Add to `~/.zshrc`:

```bash
function yy() {
    local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
    yazi "$@" --cwd-file="$tmp"
    if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
        cd -- "$cwd"
    fi
    rm -f -- "$tmp"
}
```

Then use `yy` to launch yazi and automatically cd to the last visited directory on exit.

## See Also

<div class="embed-card">
  <a href="/neovim/" class="embed-card-link">
    <div class="embed-card-content">
      <div class="embed-card-title">Neovim Configuration</div>
      <div class="embed-card-description">Neovim configuration with lazy.nvim for plugin management</div>
      <div class="embed-card-meta">Feb 7, 2026</div>
    </div>
  </a>
</div>


<div class="embed-card">
  <a href="/zsh/" class="embed-card-link">
    <div class="embed-card-content">
      <div class="embed-card-title">zsh Configuration</div>
      <div class="embed-card-description">zsh shell configuration - my primary shell with autosuggestions, syntax highlighting, and custom functions</div>
      <div class="embed-card-meta">Feb 7, 2026</div>
    </div>
  </a>
</div>


<div class="embed-card embed-card-external">
  <a href="https://yazi-rs.github.io/" class="embed-card-link" target="_blank" rel="noopener noreferrer">
    <div class="embed-card-image">
      <img src="https://yazi-rs.github.io/webp/docusaurus-social-card.wbep" alt="" loading="lazy">
    </div>
    <div class="embed-card-content">
      <div class="embed-card-title">Yazi</div>
      <div class="embed-card-description">Blazing fast terminal file manager written in Rust, based on async I/O.</div>
      <div class="embed-card-meta">yazi-rs.github.io</div>
    </div>
  </a>
</div>

