Get started
Thanks for giving pls a try. We hope you like using it as much as we do.
Prerequisites
Section titled “Prerequisites”- macOS or Linux: Windows is currently not supported.
- Terminal: Ghostty, WezTerm,
Kitty and iTerm2 are all great
terminals that support most
plsfeatures. - Nerd Fonts: Needed to render icons in the terminal.
Installation
Section titled “Installation”These are the different ways you can install pls on your machine.
Homebrew
Section titled “Homebrew”pls is available to install for macOS and Linux via our official Homebrew
tap. Currently pls is not available through Homebrew
core, but it is planned for the future.
brew install pls-rs/pls/plsThis command will fetch and install the latest release of pls from GitHub.
pls is also available as a Nix package. You can
install it using nix-env, add it to your NixOS configuration or just try it using nix-shell.
To permanently add pls to NixOS, update your config, usually located at
/etc/nixos/configuration.nix.
environment.systemPackages = [ pkgs.pls];pls is published as Python binary wheel to PyPI, so you can install it using uv (recommended) or
pipx:
uv tool install pls --prerelease allowYou can suffix @<version> to the package name to install a specific version. The current latest
version is v@latest to get the latest at the time of installation.
Build from source
Section titled “Build from source”If you have the Rust toolchain and a C compiler installed on your computer, you can build from source locally for your operating system and architecture (libgit2 is vendored and compiled during the build). Also, we welcome your contributions!
cargo install --git https://github.com/pls-rs/plsYou can use --tag to install a specific version. The current latest version is v--branch main to get the latest, unreleased version.
Binstall
Section titled “Binstall”pls complies with Binstall's requirements so you
can use it to download pre-built binaries from releases on GitHub.
cargo binstall --git https://github.com/pls-rs/pls plsYou can use --version to install a specific version. The current latest version is v
Download binary
Section titled “Download binary”The CI + CD job compiles binaries for each supported OS on every code push. Additionally, we also
cut periodic releases from the main branch of the repository. You can download the binary for your
operating system and architecture by following these steps.
-
Download the binary file. You can either download the binary associated with a release or a commit.
-
Release
- Go to the GitHub Releases page for
pls. - Find the latest release i.e. v
x.y.z . - Expand the "Assets" attached to the release.
- Go to the GitHub Releases page for
-
Commit
- Visit the page for
pls's CI + CD workflow. - Click on the last successful workflow.
- Scroll down to the "Artifacts" section.
- Visit the page for
-
-
Download the binary as per your operating system.
pls-aarch64-apple-darwinfor macOS (Apple Silicon)pls-x86_64-apple-darwinfor macOS (Intel)pls-x86_64-unknown-linux-muslfor Linux (x86_64 e.g. Intel, AMD)pls-aarch64-unknown-linux-muslfor Linux (arm64)
-
Unzip the archive and find the single
plsexecutable. -
Place the executable on your
$PATH. To do this, you can either add the directory that contains it to the path, or move/symlink the binary to a directory that is already on your$PATH.
Verification
Section titled “Verification”You can check if pls was installed correctly and present on your $PATH by running the
following command. If you see a version number, you're good to go!
pls --version # or -Vpls
x.y.z
To run pls, type the following command into any terminal.
plsBy default, pls lists the contents of the current working directory, but you can pass any number
of different files or directories as positional arguments.
If a directory path is passed, all the files and directories within that directory are listed. This
is useful to see what's in the folder. If a file path is passed, only the file itself is listed. On
its own, that's not very useful except to see if that file exists. But with the
--det/-d flag, pls can display quite a lot of metadata for the
file.
To see what pls is capable of, and how to use those features, check out the built-in help. You
can see the detailed help or a quick reference using the --help/-h flags respectively.
pls --help # or -hpls is a prettier and powerful ls(1) for the pros. Usage: pls [OPTIONS] [PATHS]... ...