# Joshuto — Ranger-Like Terminal File Manager Written in Rust > A ranger-like terminal file manager written in Rust. Joshuto provides a fast, keyboard-driven multi-pane file browser with Vim-like keybindings, file previews, and extensive customization through TOML configuration files. ## Install Save in your project root: # Joshuto — Ranger-Like Terminal File Manager Written in Rust ## Quick Use Install with Cargo: `cargo install --git https://github.com/kamiyaa/joshuto.git --force`, or via package managers like `pacman -S joshuto` (Arch Linux) and `brew install joshuto` (macOS). ## Introduction Joshuto is a terminal file manager written in Rust, inspired by the popular ranger file manager. It provides a three-pane Miller columns interface for navigating the filesystem with Vim-style keybindings. Joshuto aims to deliver the same workflow as ranger with improved performance through Rust's native speed and memory safety, while offering extensive configuration through TOML files. ## What Joshuto Does - Provides a three-column Miller layout showing parent, current, and child directories simultaneously - Supports Vim-like keybindings for navigation, selection, and file operations - Previews files and directories in the third pane using configurable external tools - Handles bulk file operations including copy, move, delete, and rename with queued workers - Offers tab support for working with multiple directories in the same session ## Architecture Overview Joshuto is built entirely in Rust using the crossterm library for terminal rendering, making it cross-platform without ncurses dependency. The architecture follows an event-driven model where user input is mapped to commands through a configurable keymap. File operations run in background worker threads to keep the UI responsive during large copy or move operations. Configuration is split across multiple TOML files covering keybindings, theming, mimetype associations, and file previews. ## Self-Hosting & Configuration - No server setup needed; Joshuto runs as a standalone terminal application - Keybindings are configured in `keymap.toml` with full support for custom command mappings - File previews are configured in `preview.toml` specifying external tools per file type - Theming and colors are defined in `theme.toml` for customizing the visual appearance - Mimetype-based file opening rules are set in `mimetype.toml` for launching external programs ## Key Features - Written in Rust for fast startup time and efficient memory usage compared to Python-based alternatives - Asynchronous file operation workers that process copy, move, and delete jobs in the background - Tab support allowing multiple directory views within a single terminal instance - Highly configurable through separate TOML files for keybindings, themes, previews, and mimetypes - Bulk rename support using external editors for batch file renaming workflows ## Comparison with Similar Tools - **ranger**: Python-based terminal file manager; Joshuto offers similar UX with faster performance through Rust - **lf**: Go-based terminal file manager; Joshuto provides a more ranger-like experience with Miller columns - **nnn**: Minimalist C file manager focused on speed; Joshuto offers a richer three-pane interface - **Yazi**: Newer Rust terminal file manager with async I/O; Joshuto is more established with ranger-style workflow - **Midnight Commander**: Two-pane orthodox file manager; Joshuto follows the Miller columns paradigm instead ## FAQ **Q: Can I migrate my ranger configuration to Joshuto?** A: Not directly, as Joshuto uses TOML configuration files with a different format. However, the keybinding concepts are similar enough to translate manually. **Q: Does Joshuto support image previews in the terminal?** A: Yes, Joshuto can display image previews using protocols like Kitty graphics protocol or sixel, depending on your terminal emulator. **Q: Is Joshuto a drop-in replacement for ranger?** A: Joshuto aims for a similar workflow but is not a drop-in replacement. Some ranger features may differ or be absent. **Q: Does Joshuto support mouse input?** A: Mouse support is limited. Joshuto is designed primarily for keyboard-driven navigation. ## Sources - Repository: https://github.com/kamiyaa/joshuto - Documentation: https://github.com/kamiyaa/joshuto/blob/main/docs/configuration/README.md --- Source: https://tokrepo.com/en/workflows/asset-e09d331c Author: AI Open Source