A non-bullshit, bug-free (as much as possible), minimal file manager for the terminal.
The goal of the project is to provide a simple, fast and easy to use file manager for the terminal. Under the hood it uses the great bubbletea framework.
Sail strictly follows semantic versioning, meaning:
- patch version is incremented for bug fixes
- minor version is incremented for new features
- major version is incremented for breaking changes
so you can be confident that upgrading to a new version will not break your setup.
This project is inspired by the lf file manager, which I previously used, but found to be too buggy.
This project is still in its early stages, so it has not had any releases yet. However, you may install the latest development build by running:
go install github.com/alx99/sail/cmd/sail@latest
- 24-bit (true color) support
- LS_COLORS support
- Customizable keybindings
- Sail into directories
- Delete files
- Select files
- Move files
- Copy files
- Rename files
- Create files
- Undo
- Create directories
- Toggle hidden files
- Search files
- Open files with default application
Sail tries to locate the config file at $XDG_CONFIG_HOME/sail/config.yaml
or $HOME/.config/sail/config.yaml
if XDG_CONFIG_HOME
is not set.
If the file is not found, it will use the following default configuration:
settings:
alt_screen: true
keymap:
left: "h"
up: "j"
down: "k"
right: "l"
in: "."
out: ","
go_home: "~"
delete: "d"
select: " "
paste: "p"
copy: "c"
Sail can be used as a replacement for the cd
command. To do so, you can put the following in your .bashrc
or .zshrc
:
sd() {
set -e
tmp_file="$(mktemp)"
trap 'rm -rf -- "$tmp_file"' EXIT INT TERM HUP
sail -write-wd "$tmp_file"
cd "$(cat "$tmp_file")"
set +e
}