Xonsh is a Python-powered, cross-platform, Unix-gazing 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.
Try out xonsh right here in the browser. Just press the triangle play button in the bottom right of the Repl.it frame below. Note: this is not a fully featured xonsh instance due to repl.it limitations.
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.
|Native cross-platform support||✓||✓||✓||✓|
|Meant as a shell||✓||✓||✓||✓|
|Large standard library||✓||✓||✓|
|Syntax highlighting||✓||in notebook||w/ prompt-toolkit|
|Pun in name||✓||✓||✓|
Xonsh currently has the following external dependencies,
- Python v3.4+
- PLY (optional, included with xonsh)
Pip supports “extra” dependencies in the form of
the list in the brackets identify the optional features
Xonsh currently has the following extras
ptk: prompt-toolkit: advanced readline library, line-editing
proctitle: setproctitle: change the title of terminal to reflect the current subprocess
linux: distro: linux specific platform information
mac: gnureadline: GNU’s featureful version of readline
win: win_unicode_console: enables the use of Unicode in windows consoles
In addition, xonsh integrates with Jupyter, an in-browser REPL, enabling the use of xonsh in jupyter notebooks
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 (firstname.lastname@example.org) or the Gitter channel.
See the Developer’s Guide for more information about contributing.