Fork 0
mirror of https://github.com/ranger/ranger.git synced 2024-06-20 04:01:10 +02:00
Go to file
2024-02-21 18:21:36 +01:00
.github GHActions: Set TERM for test_py job 2023-08-18 16:27:46 +02:00
doc Revert "Updated man files for new setting which can be used to enable copy" 2023-06-16 13:34:34 +02:00
examples Merge branch 'N-R-K-sxiv_rifle_stuff' 2022-11-17 12:51:42 +01:00
ranger Don't crash on incomplete filter_stack input 2024-02-21 18:21:36 +01:00
tests Pylint: Replace f-strings in port checker for Py 2 compat 2023-03-01 15:31:14 +01:00
.flake8 Add ignore for W503 to .flake8 to follow new pep8 2018-05-14 11:27:26 +02:00
.gitignore Revert "Merge branch 'slackhead-venv-gitignore'" 2019-03-03 22:09:17 +01:00
.pylintrc Pylint: Disable superfluous-parens 2023-03-01 14:48:04 +01:00
AUTHORS Patched patch of intel microcode patch 2018-01-28 20:35:24 +01:00
CHANGELOG.md changelog, commands: Fix typos 2022-11-16 15:54:03 +01:00
CONTRIBUTING.md remove outdated information on security-relevant bugs 2022-10-08 18:28:01 +02:00
Dockerfile Add docker entrypoint 2018-04-01 14:46:39 +02:00
HACKING.md HACKING: Drop hut's email and PGP key 2021-09-18 22:37:51 +02:00
LICENSE Use license file provided by gnu.org 2021-08-25 12:17:57 +00:00
Makefile Makefile: Drop README.md from man page requisites 2022-03-18 19:25:33 +01:00
ranger.py Apply requested changes to ranger.py and enforce full POSIX compliance 2019-10-28 12:59:58 +02:00
README.md Merge branch 'remi6397-feature/sixel' 2023-04-16 19:24:08 +02:00
requirements.txt requirements.txt: Drop Pylint pin. 2023-02-28 15:26:05 +01:00
setup.py Fully migrate from distutils to setuptools 2020-05-13 23:00:20 +02:00

ranger 1.9.3

Build Status latest packaged version(s)

ranger is a console file manager with VI key bindings. It provides a minimalistic and nice curses interface with a view on the directory hierarchy. It ships with rifle, a file launcher that is good at automatically finding out which program to use for what file type.


For mc aficionados there's also the multi-pane viewmode.

two panes multiple panes

This file describes ranger and how to get it to run. For instructions on the usage, please read the man page (man ranger in a terminal). See HACKING.md for development-specific information.

For configuration, check the files in ranger/config/ or copy the default config to ~/.config/ranger with ranger --copy-config (see instructions).

The examples/ directory contains several scripts and plugins that demonstrate how ranger can be extended or combined with other programs. These files can be found in the git repository or in /usr/share/doc/ranger.

A note to packagers: Versions meant for packaging are listed in the changelog on the website.


Design Goals

  • An easily maintainable file manager in a high level language
  • A quick way to switch directories and browse the file system
  • Keep it small but useful, do one thing and do it well
  • Console-based, with smooth integration into the unix shell


  • UTF-8 Support (if your Python copy supports it)
  • Multi-column display
  • Preview of the selected file/directory
  • Common file operations (create/chmod/copy/delete/...)
  • Renaming multiple files at once
  • VIM-like console and hotkeys
  • Automatically determine file types and run them with correct programs
  • Change the directory of your shell after exiting ranger
  • Tabs, bookmarks, mouse support...


  • Python (>=2.6 or >=3.1) with the curses module and (optionally) wide-unicode support
  • A pager (less by default)

Optional dependencies

For general usage:

  • file for determining file types
  • chardet (Python package) for improved encoding detection of text files
  • sudo to use the "run as root" feature
  • python-bidi (Python package) to display right-to-left file names correctly (Hebrew, Arabic)

For enhanced file previews (with scope.sh):

  • img2txt (from caca-utils) for ASCII-art image previews
  • w3mimgdisplay, ueberzug, mpv, iTerm2, kitty, terminology or urxvt for image previews
  • convert (from imagemagick) to auto-rotate images and for image previews
  • rsvg-convert (from librsvg) for SVG previews
  • ffmpeg, or ffmpegthumbnailer for video thumbnails
  • highlight, bat or pygmentize for syntax highlighting of code
  • atool, bsdtar, unrar and/or 7z to preview archives
  • bsdtar, tar, unrar, unzip and/or zipinfo (and sed) to preview archives as their first image
  • lynx, w3m or elinks to preview html pages
  • pdftotext or mutool (and fmt) for textual pdf previews, pdftoppm to preview as image
  • djvutxt for textual DjVu previews, ddjvu to preview as image
  • calibre or epub-thumbnailer for image previews of ebooks
  • transmission-show for viewing BitTorrent information
  • mediainfo or exiftool for viewing information about media files
  • odt2txt for OpenDocument text files (odt, ods, odp and sxw)
  • python or jq for JSON files
  • sqlite3 for listing tables in SQLite database (and optionally sqlite-utils for fancier box drawing.)
  • jupyter nbconvert for Jupyter Notebooks
  • fontimage for font previews
  • openscad for 3D model previews (stl, off, dxf, scad, csg)
  • draw.io for draw.io diagram previews (drawio extension)


Use the package manager of your operating system to install ranger. You can also install ranger through PyPI: pip install ranger-fm. However, it is recommended to use pipx instead (to benefit from isolated environments). Use pipx run --spec ranger-fm ranger to install and run ranger in one step.

Check current version: Packaging status Packaging status

Installing from a clone

Note that you don't have to install ranger; you can simply run ranger.py.

To install ranger manually:

sudo make install

This translates roughly to:

sudo python setup.py install --optimize=1 --record=install_log.txt

This also saves a list of all installed files to install_log.txt, which you can use to uninstall ranger.

Getting Started

After starting ranger, you can use the Arrow Keys or h j k l to navigate, Enter to open a file or q to quit. The third column shows a preview of the current file. The second is the main column and the first shows the parent directory.

Ranger can automatically copy default configuration files to ~/.config/ranger if you run it with the switch --copy-config=( rc | scope | ... | all ). See ranger --help for a description of that switch. Also check ranger/config/ for the default configuration.

Going Further

  • To get the most out of ranger, read the Official User Guide.
  • For frequently asked questions, see the FAQ.
  • For more information on customization, see the wiki.


For help, support, or if you just want to hang out with us, you can find us here: