the xonsh shellΒΆ

~ ~

Xonsh is a Python-ish, BASHwards-looking shell language and command prompt. The language is a superset of Python 3.4+ 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.

At a glance


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.

  Bash zsh plumbum fish IPython xonsh
Sane language     βœ“ βœ“ βœ“ βœ“
Easily scriptable βœ“ βœ“ βœ“ βœ“   βœ“
Native cross-platform support     βœ“ βœ“ βœ“ βœ“
Meant as a shell βœ“ βœ“   βœ“   βœ“
Tab completion βœ“ βœ“   βœ“ βœ“ βœ“
Man-page completion       βœ“   βœ“
Large standard library   βœ“     βœ“ βœ“
Typed variables     βœ“ βœ“ βœ“ βœ“
Syntax highlighting       βœ“ in notebook w/ prompt-toolkit
Pun in name βœ“   βœ“     βœ“
Rich history           βœ“


Xonsh currently has the following external dependencies,

Run Time:

  1. Python v3.4+
  2. PLY (optional, included with xonsh)
  3. prompt-toolkit (optional)
  4. Jupyter (optional)
  5. setproctitle (optional)
  6. distro (optional)


  1. Sphinx (which uses reStructuredText)
  2. Numpydoc
  3. Cloud Sphinx Theme


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 (

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!