7 releases
| 0.9.9 | May 20, 2025 |
|---|---|
| 0.9.7 | Mar 15, 2024 |
| 0.9.6 | Nov 20, 2023 |
| 0.9.5 | Jul 4, 2023 |
| 0.9.2 | Nov 20, 2021 |
#114 in Filesystem
539 downloads per month
1.5MB
15K
SLoC
joshuto
ranger-like terminal file manager written in Rust.

Dependencies
- cargo >= 1.67
- rustc >= 1.67
- xsel/xclip/wl-clipboard (optional, for clipboard support)
- fzf (optional)
- zoxide (optional)
Also see Cargo.toml
Building
~$ cargo build
Installation
For single user
~$ cargo install --path=. --force
For single user with cargo
~$ cargo install --git https://github.com/kamiyaa/joshuto.git --force
System wide
~# cargo install --path=. --force --root=/usr/local # /usr also works
From pre-compiled binary
Dependencies:
- curl
- openssl
Latest release
Installs the latest version using the default installation path ($HOME/.local/bin/).
~$ bash <(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)
Custom Installation path
Allows you to install Joshuto to a custom directory by setting the INSTALL_PREFIX variable.
~$ INSTALL_PREFIX="$HOME" bash <(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)
System wide
~# INSTALL_PREFIX="/usr/local/bin" bash <(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)
Specific release
Installs a specific release version of Joshuto by the desired version number.
~$ RELEASE_VER='v0.9.4' bash <(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)
Packaging status
Fedora (COPR)
sudo dnf copr enable atim/joshuto -y
sudo dnf install joshuto
Arch (AUR)
[yay/paru] -S joshuto
[yay/paru] -S joshuto-git
Arch (archlinuxcn)
[yay/paru] -S joshuto
[yay/paru] -S joshuto-git
Gentoo (gentoo-zh)
sudo eselect repository enable gentoo-zh
sudo emerge -av app-misc/joshuto
NixOS
Here's an example of using it in a nixos configuration
{
description = "My configuration";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
joshuto.url = "github:kamiyaa/joshuto";
};
outputs = { nixpkgs, joshuto, ... }:
{
nixosConfigurations = {
hostname = nixpkgs.lib.nixosSystem
{
system = "x86_64-linux";
modules = [
{
nixpkgs.overlays = [ joshuto.overlays.default ];
environment.systemPackages = with pkgs;[
joshuto
];
}
];
};
};
};
}
Temporary run, not installed on the system
nix run github:kamiyaa/joshuto
MacOS (MacPorts)
sudo port install joshuto
MacOS/Linux Homebrew
brew install joshuto
Usage
~ $ joshuto
Navigation
- Move up:
arrow_upork - Move down:
arrow_downorj - Move to parent directory:
arrow_leftorh - Open file or directory:
arrow_rightorl - Go to the top:
homeorg g - Go to the bottom:
endorG - Page up:
page_uporctrl+u - Page down:
page_downorctrl+d
Tab Management
- Open a new tab:
ctrl+t - Open a new tab with current directory:
T - Close the current tab:
Worctrl+w - Switch to next tab:
\t - Switch to previous tab:
backtab
File Operations
- Rename file:
ato append orAto prepend - Delete file:
deleteord d - Cut file:
d d - Copy file:
y y - Paste file:
p p - Paste file with overwrite:
p o - Symlink files:
p lfor absolute path,p Lfor relative path
Miscellaneous
- Toggle hidden files:
z h - Reload directory list:
R - Change directory:
c d - Show tasks:
w - Set mode:
= - Enter command mode:
:
See docs#quit for exiting into current directory and other usages
Configuration
Check out docs for details and config for examples
joshuto.toml
- general configurations
keymap.toml
- for keybindings
mimetype.toml
- for opening files with applications
theme.toml
- color customizations
bookmarks.toml
- bookmarks
Contributing
See docs
Bugs/Feature Request
Please create an issue :)
Features
- Tabs
- Devicons
- Fuzzy search via fzf
- Ctrl/Shift/Alt support
- Bulk rename
- File previews
- See Image previews for more details
- Exit to current directory
- Asynch File IO (cut/copy/paste)
- Custom colors/theme
- Line numbers
- Jump to number
- File chooser
- Trash support
TODOs
- Built-in command line
- Mostly working
- Currently implementation is kind of janky
- Tab autocomplete (in progress)
Dependencies
~71MB
~1M SLoC