How to Install and Use Joshuto in Linux for a Fast Ranger-Like Terminal File Manager

Terminal file managers are an indispensable staple for Linux system administrators, developers, and power users who demand rapid filesystem navigation without abandoning their command-line workflows. While Python-based solutions like Ranger have long set the benchmark for Miller columns navigation, their runtime overhead and Python dependencies can lead to sluggish directory indexing on large codebases. Joshuto solves this bottleneck. Written from the ground up in Rust, Joshuto provides a blazingly fast, asynchronous terminal file manager that mirrors Ranger’s beloved multi-column layout and Vi navigation while consuming minimal memory.

Core Features of Joshuto

Joshuto combines modern asynchronous performance with rich visual terminal aesthetics:

  • Ranger-Inspired Miller Columns: Browse files with an intuitive three-column layout (parent directory, current directory, and target file preview).
  • Native Multi-Tab Browsing: Open multiple independent directory tabs, switching between active workspaces instantly without spawning separate terminal multiplexer panes.
  • Asynchronous I/O Engine: Non-blocking background architecture ensures smooth UI interactions even when copying massive ISO images or indexing network shares.
  • Extensible Preview Pipelines: Seamlessly preview text, syntax-highlighted code, PDFs, archives, and images using external helper tools (like bat and chafa).
  • Custom TOML Configuration: Transparently manage keybindings, visual themes, and MIME-type handlers through human-readable TOML files.

Prerequisites and System Requirements

Before deploying Joshuto, verify your Linux environment meets these requirements:

  • Linux Distribution: Ubuntu 22.04/24.04 LTS, Debian 12, Fedora, or Arch Linux.
  • Terminal Emulator: True-colour (24-bit) terminal emulator with UTF-8 and Nerd Font support (e.g., Alacritty, Kitty, WezTerm, Foot).
  • Preview Companions (Recommended): Install bat (syntax highlighting), catdoc, tar, and chafa (terminal graphics) to power preview scripts.

Step-by-Step: Installing Joshuto on Linux

You can deploy Joshuto using official release binaries or through Cargo.

Method 1: Installing Pre-Compiled Release Binaries (Recommended)

Download the static release binary from GitHub to run Joshuto without setting up a compiler:

  1. Navigate to your temporary directory:
    cd /tmp
  2. Fetch the latest release tarball for Linux x86_64:
    curl -LO https://github.com/kamiyaa/joshuto/releases/latest/download/joshuto-v0.9.8-x86_64-unknown-linux-musl.tar.gz
  3. Extract the archive:
    tar -xzvf joshuto-*-x86_64-unknown-linux-musl.tar.gz
  4. Move the executable to your system path:
    sudo mv joshuto /usr/local/bin/
  5. Verify installation:
    joshuto --version

Method 2: Installing via Cargo (Arch / Fedora / Source)

If you maintain a Rust toolchain on your machine:

cargo install joshuto --locked

On Arch Linux, Joshuto is also available directly via the AUR: yay -S joshuto.

Launching Joshuto and Essential Keybindings

Launch the file manager by typing:

joshuto

To inspect a specific project directory on launch, pass its path: joshuto ~/Development/project/.

Essential Vi Motions

  • j / k: Move up and down through files and subdirectories.
  • l (or Enter): Enter selected directory or open file with default handler.
  • h: Navigate up to the parent directory.
  • Space: Toggle visual selection tag on the highlighted item.
  • gg / G: Jump instantly to the top and bottom of the directory listing.
  • /pattern: Interactive forward fuzzy search within the directory.

Tab Management

  • Ctrl + t: Open a new directory tab.
  • Ctrl + w: Close the current tab.
  • Tab / Shift + Tab: Cycle through active tabs.

Performing File Operations with Registers

Execute file management tasks using familiar modal actions:

  • Copying (Yank): Highlight files, press yy to copy. Navigate to the target directory and press pp to paste.
  • Moving (Cut): Press dd to cut files. Navigate to the destination folder and press pp.
  • Renaming: Press cw to edit the filename inline.
  • Deleting: Press dD to permanently delete selected items after confirmation.
  • New Directory / File: Type :mkdir <folder_name> or :touch <file_name>.

Configuring Preview Scripts and Keymaps

Joshuto stores configuration files in ~/.config/joshuto/:

mkdir -p ~/.config/joshuto
git clone https://github.com/kamiyaa/joshuto.git /tmp/joshuto-source
cp -r /tmp/joshuto-source/config/* ~/.config/joshuto/

In ~/.config/joshuto/preview_file.sh, you can enable custom script hooks to render PDFs via pdftotext, syntax-highlight source code via bat, and render visual image previews via chafa.

Synchronising Shell Working Directory on Exit

To have your terminal automatically switch into the directory you were viewing upon closing Joshuto, add this function to your ~/.bashrc or ~/.zshrc:

j() {
    ID="$$"
    mkdir -p /tmp/$USER
    OUTPUT_FILE="/tmp/$USER/joshuto-cwd-$ID"
    joshuto --output-file "$OUTPUT_FILE" "$@"
    exit_code=$?
    if [ -f "$OUTPUT_FILE" ]; then
        JOSHUTO_CWD=$(cat "$OUTPUT_FILE")
        rm -f "$OUTPUT_FILE"
        if [ -d "$JOSHUTO_CWD" ]; then
            cd "$JOSHUTO_CWD"
        fi
    fi
    return $exit_code
}

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.