You can install xonsh using
pip or the package manager for
your operating system distribution.
For the fullest interactive user experience, these additional packages should also be installed:
for command completion, configurable key bindings and especially multi-line line editing.
for xonsh and Python syntax-specific highlighting
updates process title (in terminal window and process monitor) to match Xonsh arguments.
Installing with these packages is the recommended configuration and is documented first. If you are operating in a specialized or restricted environment, you can install just the xonsh package, as described in fewer prerequisites
$ conda config --add channels conda-forge $ conda install xonsh
pip: Typically you will activate a virtual environment and install xonsh there. This will ensure that you invoke the
correct Python interpreter and
$ pip install xonsh[full]
This uses the pip ‘extras’ syntax, and is equivalent to:
$ pip install pygments prompt-toolkit setproctitle xonsh
pip commands may have to be spelled
sudo pip3 if you are not installing in a virtual environment.
source: Pip can also install the most recent xonsh source code from the xonsh project repository.
$ pip install pygments prompt-toolkit setproctitle https://github.com/xonsh/xonsh/archive/master.zip
pip command may likewise have to be amended as noted above.
platform package managers Various operating system distributions have platform-specific package managers which may offer a xonsh package. This may not be the most current version of xonsh, but it should have been tested for stability on that platform by the distribution managers.
OS or distribution
$ [sudo] apt install
pygments prompt-toolkit setproctitle xonsh
$ [sudo] dnf install
$ [sudo] pacman -S
$ [sudo] brew install
If you run into any problems, please let us know!
A design goal of Xonsh is to run in any environment that supports a (supported) Python interpreter, you
can install just the
xonsh package (using any package manager).
pip install xonsh
When it starts up, if xonsh does not find
setproctitle packages, it simply does not colorize
or highlight syntax or set process title, respectively.
If it does not find
prompt-toolkit package, it will
use the Python
readline module (which reads configuration file
.inputrc in a manner compatible with
To ensure xonsh uses
readline even if
prompt-toolkit is installed, configure this in your
$SHELL_TYPE = 'readline'