Xonsh – put some Python in your Shell

PyBay 2016


August 20, 2016
9:00am to 10:00am
San Francisco, CA

Xonsh is a Python-ish, BASHwards-looking shell language and command prompt. The language is a superset of Python 3.4+ with additional support for the best parts of shells that you are used to, such as Bash, zsh, fish, 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. ​


Programmers spend their time at a command line interface often sticking to default shell. A lot of progress have been made for the friendliness, usability, extensibility of shell. We thus introduce Xonsh which attempt to bring the command line shell to the 21st century.

Xonsh is general purpose shell that combines Python and the best features of Bash, zsh, IPython and fish. Written in Python and relying only the standard library and PLY, the xonsh language is a strict superset of Python that compiles to a Python AST. The shell can provides exciting features: rich history, tab completion from bash and man pages, syntax highlighting, auto-suggestion, foreign-function aliases and more!

Whether you are a novice who is looking to use use the command line, or an Python expert Xonsh is made for you.

Because xonsh is Python, it automatically has all the available python ecosystem at your fingertip. Xonsh makes meshing and intertwining python code with command-line interfaces as seamless as possible. Have you ever wanted to use regular expressions to glob files? No problem! Ever wanted to curl a remote resource right into `json.loads()`? Now you can. Do you not want to leave the command line to use pandas, NLTK or add two numbers together? No big deal.

The xonsh homepage is at https://xon.sh.

Presentation Web Page / Presentation Slides

PyBay 2016 Website


Matthias Bussonnier

BIDS Alum — BIDS Postdoctoral Scholar

Matthias Bussonnier was a postdoctoral scholar at BIDS working on Project Jupyter.  He received his PhD in Biophysics at Institut Curie (Paris, France) after a training in fundamental Physics at ENS Cachan (France).  Matthias worked on developing tools for modern computational research across disciplines, with an emphasis on high-level languages, literate computing, and reproducible research. In particular, Matthias has been a core developper of the IPython and Jupyter Project team since 2011 and worked on bringing real-time collaboration to scientific tools.