A terminal file browser with Miller columns, written in C#.
Pre-built binaries support Windows and Linux. macOS is supported when built from source.
Inspired by yazi, broot, and ranger.
- Miller columns — three-pane layout (parent / current / preview), each pane independently hideable
- Column headers — labeled header row with separator line in all panes; adapts to visible columns and drive view
- Detail columns — file size and modification date with responsive column tiers; async directory sizes (gated per drive type)
- Drive navigation — browse drives on Windows with file system, free/total space, and percent-full bar columns; SSD/HDD detection
- File-type icons — Nerd Fonts v3 glyphs per extension
- Sort order — by name, date, size, or extension (
sto cycle,Sto reverse) - Filter —
/to narrow entries in real-time - Go-to-path —
Ctrl+Gwith Tab autocomplete - File finder —
Ctrl+Frecursive breadth-first search with fuzzy matching and highlighted results - Bookmarks —
bto open,Bto toggle; persists in MRU order - Hidden files —
.to toggle; separate system files toggle on Windows
- File preview — text, hex, git diff, archive contents, images (Sixel), PDF (via
pdftopng), MSI file listing, and Markdown (built-in Markdig renderer); multiple modes per file switchable viap - Expanded preview — Right/Enter expands to full width; scrollable
- Image preview — Sixel graphics (Windows Terminal 1.22+, kitty, WezTerm, etc.)
- File metadata — structured metadata above preview and in properties overlay (
i); format-specific providers for images (EXIF), executables (PE/.NET), Office docs, NuGet packages, archives, PDF, media files, and MSI installers - File properties —
ifor scrollable overlay with timestamps, attributes, git status, and extracted metadata
- Git status — color-coded files/dirs (modified, staged, untracked, conflict); status icons; branch name with ahead/behind counts in status bar
- Git actions — action palette (
Ctrl+P) offers diff preview, stage/unstage, commit, push, pull, fetch
- File actions — open, rename, delete (with confirmation), copy/cut/paste with Windows clipboard interop; multi-select supported
- Copy path —
yfor absolute path,Yfor git-relative path - Symlinks — visual distinction with target display;
Ctrl+Lto create - Cloud files — auto-detected OneDrive/Dropbox placeholders shown with cloud icon (Windows)
- Mouse support — click, scroll, right-click context menu in all panes
- Action palette —
Ctrl+P/Ctrl+Ksearchable command list with submenus - In-app config —
,opens hierarchical settings dialog - Status bar — path, git branch, item count, file type, encoding, line endings, size, sort mode
- Shell integration —
Ctrl+Topens terminal;wdwrapper for cd-on-exit (bash, zsh, fish, PowerShell) - Auto-refresh —
FileSystemWatcherwith 300ms debounce - Terminal title — shows current directory; clears on exit
- Minimal rendering — raw VT/ANSI, double-buffered with dirty-row tracking
- A terminal with VT/ANSI support (Windows Terminal, ConPTY-based terminals, or Unix/WSL terminals)
scoop bucket add lucaspimentel https://github.com/lucaspimentel/scoop-bucket
scoop install wade./install-remote.ps1Or as a one-liner:
irm https://raw.githubusercontent.com/lucaspimentel/wade/main/install-remote.ps1 | iexRequires .NET 10 SDK.
./install-local.ps1Both scripts install to ~/.local/bin/wade. Ensure that directory is in your PATH.
wade # open in current directory
wade C:\Users # open in a specific directory~/.config/wade/config.toml
show_icons_enabled = true
show_hidden_files = false
show_system_files = false # Windows only; requires show_hidden_files
sort_mode = name # name, modified, size, extension
sort_ascending = true
confirm_delete_enabled = true
parent_pane_enabled = true
preview_pane_enabled = true
size_column_enabled = true
date_column_enabled = true
column_headers_enabled = true
copy_symlinks_as_links_enabled = true
terminal_title_enabled = true
git_status_enabled = true
file_metadata_enabled = true
archive_metadata_enabled = true
dir_size_ssd_enabled = true
dir_size_hdd_enabled = false
dir_size_network_enabled = false
file_previews_enabled = true
image_previews_enabled = true
zip_preview_enabled = true
pdf_preview_enabled = true
pdf_metadata_enabled = true
markdown_preview_enabled = true
ffprobe_enabled = true
mediainfo_enabled = truewade --version # print version and exit
wade --show-config # print current config as JSON and exit
wade --config-file=/path/to/config # use a custom config file
wade --help # print usage info and exit
wade -h # same as --helpWade can change your shell's working directory when you quit with q. Source the appropriate wrapper function in your shell config:
Bash / Zsh — add to ~/.bashrc or ~/.zshrc:
source /path/to/wade/shell/wd.shFish — copy to ~/.config/fish/functions/ or source in config.fish:
source /path/to/wade/shell/wd.fishPowerShell — add to your $PROFILE:
. /path/to/wade/shell/wd.ps1Then use wd instead of wade to browse. Press q to quit and cd to the last directory, or Q to quit without changing directory.
| Key | Action |
|---|---|
| Up / k | Move selection up |
| Down / j | Move selection down |
| Right / l / Enter | Open directory / expand preview |
| Left / h / Backspace | Go back / collapse preview |
| Page Up / Page Down | Scroll by page |
| Home / End | Jump to first / last item |
| Left Click | Select / Open |
| Right Click | Context menu |
| Scroll | Navigate up/down |
| Ctrl+R / F5 | Refresh |
| Ctrl+T | Open terminal here |
| . | Toggle hidden files |
| s | Cycle sort (name / time / size / ext) |
| S | Reverse sort direction |
| Ctrl+G | Go to path (Esc clears input, Up goes up a directory) |
| b | Open bookmarks dialog |
| B | Toggle current directory as bookmark |
| / | Filter |
| Esc (in filter) | Clear filter |
| Space | Toggle mark (multi-select) |
| o | Open with default app |
| F2 | Rename |
| Del | Delete (Recycle Bin on Windows) |
| Shift+Del | Delete permanently |
| c | Copy |
| x | Cut |
| v | Paste |
| y | Copy absolute path to clipboard |
| Y | Copy git-relative path to clipboard |
| n | Create new file |
| Shift+N | Create new directory |
| Ctrl+L | Create symlink to selected item |
| p | Change preview (when multiple preview modes available) |
| i | Properties |
| , | Configuration |
| Ctrl+F | Search / Find file |
| Ctrl+P / Ctrl+K | Action palette |
| ? | Show help |
| q / Escape | Quit |
| Q | Quit without cd |
dotnet build Wade.slnx
dotnet test Wade.slnxThis project is licensed under the MIT License.
This project was developed with Claude Code 🤖
