runa-tui 0.4.0

A fast, keyboard-focused terminal file browser (TUI). Highly configurable and lightweight. Previously known as runner-tui.
Documentation
runa-tui-0.4.0 has been yanked.

runa - rn

Build Latest Release Crates.io AUR Language License

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

  • 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 rn binary 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:

cargo install runa-tui

Arch Linux (AUR)

You can install runa from the AUR using an AUR helper like paru or yay:

yay -S runa


# or for binaries through the AUR

yay -S runa-bin

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.txt file in the Release page.

Unix

sha256sum -c SHA256SUMS.txt

This checks all the checksums of the SHA256SUMS.txt. To check a specific release archive:

grep runa-linux-x86_64.tar.gz SHA256SUMS.txt | sha256sum -c

Windows

Get-FileHash runa-windows-x86_64.zip -Algorithm SHA256

Compare the output with the corresponding entry in SHA256SUMS.txt.

Build from source

Clone the repo and build with Cargo:

git clone https://github.com/alexm-dev/runa.git

cd runa

cargo build --release

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

export RUNA_CONFIG=/path/to/runa.toml


# PowerShell (Windows)

$env:RUNA_CONFIG="C:\path\to\runa.toml"

You can generate a default config using the --init or --init-minimal flag:

rn --init


# For the whole configuration options runa.toml

rn --init-full


# For help with all the configuration options.

rn --config-help

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 fd is detected in your PATH, the search feature will be enabled automatically.
    • Without it, runa remains a fully functional file manager but will notify you if you attempt a recursive search.

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:

License

This project is Licensed under the MIT License
See the LICENSE file for details.