runa - rn
A fast, ultra-lightweight, and extremely customizable terminal file browser written in Rust.
- Extremely Customizable: Every key, theme color, pane, and UI element can be adjusted in an easy TOML config.
- Blazing Fast: Instant navigation, even in large directories.
- Minimal Dependencies: Only uses essential Rust crates; advanced features (like fuzzy search) are fully optional.
- Cross-Platform: Works on Windows, Linux, and macOS.
- Keyboard-Driven: Every action accessible by keybinding. No mouse needed.
Documentation
- Full Configuration Guide
- Config File Location
- General Settings
- Theme Configuration
- Key Bindings
- Editor
- Examples
- Multi-threaded engine: Spawns 4 dedicated worker threads (with
crossbeam_channel) for I/O, preview, find, and file operations—so UI is never blocked. - Essential-only Rust crates: No external TUI frameworks or bloat.
- Direct terminal rendering: Uses low-overhead ratatui & crossterm.
- Optional blazing-fast find: Integrates with fd for recursive fuzzy search.
- Small, native binary: The
rnbinary is compact (typically 1.2–1.8 MB, depending on operating system and architecture).
runa - rn is a minimalist terminal file manager focused on speed and simplicity.
It allows you to navigate directories, view file listings, and perform typical file browser actions.
runa is very customizable, checkout the Configuration docs for all the available options.
[!IMPORTANT] runa is a work in progress. It is being actively developed and features may change over time.
Changelog
For a detailed list of changes and release notes, see CHANGELOG.md.
Installation
Cargo:
Arch Linux (AUR)
You can install runa from the AUR using an AUR helper like paru or yay:
# or for binaries through the AUR
Pre-compiled Binaries
If you'd like to download Pre-compiled binaries instead of installing runa as a crate in cargo or via the AUR, you can grab the latest binaries for Linux, Windows and macOS from the Release page.
After downloading, add the rn (Linux/macOS) or rn.exe (Windows) binary to your system PATH to use runa from your terminal.
[!TIP] Checksum Check: You can verify the integrity of the release archives using the
SHA256SUMS.txtfile in the Release page.Unix
This checks all the checksums of the SHA256SUMS.txt. To check a specific release archive:
|Windows
Get-FileHash runa-windows-x86_64.zip -Algorithm SHA256Compare the output with the corresponding entry in
SHA256SUMS.txt.
Build from source
Clone the repo and build with Cargo:
Usage
After installation, start runa with rn
Configuration
A full configuration documentation will follow.
runa uses a runa.toml file for configuration. By default, it is located at:
$HOME/.config/runa/runa.toml (on both Unix and Windows, inside the user folder)
You can override the config path by setting an environment variable:
# Unix
# PowerShell (Windows)
$env:RUNA_CONFIG="C:\path\to\runa.toml"
You can generate a default config using the --init or --init-minimal flag:
# For the whole configuration options runa.toml
# For help with all the configuration options.
This will generate a config in the default config path.
Optional Enhancements
runa is designed to be lightweight and standalone. However, some advanced features leverage specialized external tools:
- Fuzzy Search: To enable fast, recursive fuzzy finding, install fd.
- If
fdis detected in yourPATH, the search feature will be enabled automatically. - Without it,
runaremains a fully functional file manager but will notify you if you attempt a recursive search.
- If
Roadmap
runa is in active development.
Future releases will focus on expanding functionality while keeping it fast and lightweight.
Planned features
-
Image Previews: Support for Sixel/Kitty graphics protocols.
-
Syntax Highlighting: Treesitter (or similar) integration for the preview pane.
Completed
-
Search & Discovery: Integrated fuzzy finding (fd support) (Completed in 0.4.0) --
-
File Operations: Copy, move, delete, and rename from within the UI. ( Completed in 0.3.0 )
-
Content Search: Text search and filtering. (Completed in 0.3.0)
-
Performance: Reactive rendering (Completed in 0.2.0).
-
UI Customization: Pane-specific styling and Hex color support (Completed in 0.2.2).
-
Navigation Context: Persistent Parent (Origin) and Preview panes (Completed in 0.2.0)
Support & Contribute
If you enjoy using runa, you can help the project grow:
- ⭐ Star the Repo: It helps more people discover runa :)
- 🐛 Report Bugs: Open an issue if something doesn't work as expected.
- 💡 Feature Requests: Suggest new ideas in the Issues tab.
- 🦀 Contribute: Pull requests are always welcome!
Credits & Ecosystem
runa stands on the shoulders of these incredible Rust crates:
- TUI Framework: Ratatui & Crossterm
- Configuration: Serde & TOML
- System Integration: Dirs (Standard config locations)
- External Integration: fd-find (Optional backend for fuzzy find)
- Concurrency: Crossbeam-channel
License
This project is Licensed under the MIT License
See the LICENSE file for details.