the xonsh shell

~ ~

Xonsh is a Python-powered, cross-platform, Unix-gazing shell language and command prompt. The language is a superset of Python 3.5+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, Mac OSX, and Windows. Xonsh is meant for the daily use of experts and novices alike.

Try It Now!

Try out xonsh right here in the browser. Just press the “Run This” button below!


Xonsh is significantly different from most other shells or shell tools. The following table lists features and capabilities that various tools may or may not share.







Sane language

Easily scriptable

Native cross-platform support

Meant as a shell

Tab completion

Completion from man-page parsing

Large standard library

Typed variables

Syntax highlighting

in notebook

w/ prompt-toolkit

Pun in name

Rich history

Getting Started


Xonsh currently has the following external dependencies,

Run Time:

  1. Python v3.5+

Pip supports “extra” dependencies in the form of xonsh[ptk,linux], where the list in the brackets identify the optional features

Xonsh currently has the following extras

  1. ptk: prompt-toolkit >= 2.0: advanced readline library, line-editing

  2. pygments: pygments >=2.2: syntax-highlighting

  3. proctitle: setproctitle: change the title of terminal to reflect the current subprocess

  4. linux: distro: linux specific platform information

  5. mac: gnureadline: GNU’s featureful version of readline

In addition, xonsh integrates with Jupyter, an in-browser REPL, enabling the use of xonsh in jupyter notebooks

Development Dependencies

If you want to develop xonsh, it is extremely recommended to install the dependencies listed in requirements/docs.txt (to generate documentation) and requirements/tests.txt (to run the test suite).

News & Media


We highly encourage contributions to xonsh! If you would like to contribute, it is as easy as forking the repository on GitHub, making your changes, and issuing a pull request. If you have any questions about this process don’t hesitate to ask the mailing list ( or the Gitter channel.

See the Developer’s Guide for more information about contributing.

Contact Us

If you have questions or comments, please send them to the mailing list, page us on IRC, contact the author directly, or open an issue on GitHub. Join the mailing list here!

Development Spiral