About

Xonsh is a Modern
Approach to the Terminal

Xonsh is Python with added shell syntax thrown in. This makes it an ideal, intuitve way to interact with your computer. You probably already know Python, and so xonsh allows you to run command line applications with out needing to learn a new, arcane syntax when ever you want to use a for-statement.

Xonsh is open source software under the BSD-2-Clause license.

Learn More
Features

Xonsh has Depth

Xonsh is a super-charged shell that enables you to work quickly and effectively! Some of the features that help set xonsh apart are:

  • Import any Python package or module!
  • Environment variables are just Python objects!
  • Rich history interface!
  • A 3rd-party extension system (xontribs)!
  • Powerful event system let's you extend default behavior!
  • Seamlesslu mix Python & Subprocess operations!
  • Loads of customization options, including keybindings!
Documentation
Community

A Shell for All

We believe that the terminal should be accessible to all! In addition to being a more approachable language than other shells, xonsh also strives to be a welcoming and accepting community of developers & users. Please drop us a line at:



Gitter
Install

Get Xonsh Now

Xonsh can be installed with most package managers, including:

  • Pip (pip install xonsh)
  • Conda (conda install -c conda-forge xonsh)
  • Apt (apt install xonsh)
  • Brew (brew install xonsh)
  • and more!

Xonsh can also be customized to meet your needs!

More Information




Frequently Asked Questions

Frequently Asked Questions

Why xonsh?

Xonsh solves the problem that other shells don’t “fit your brain.” A shell that doesn’t fit your brain can only be a liability.



Why not some other fancy shell?

While many other alternative shells have an amazing suite of features as well as much improved syntax of traditional options, none of them are quite as beautiful as Python. In xonsh, you get the best of all possible worlds.

Why not IPython?

Two reasons. The first is that typing "!" before every subprocess command is extremely tedious. The second is that tab completion of subprocess commands after an "!" does not work. These are deal breakers for day-to-day use.

How does this work?!

We use PLY to tokenize and parse xonsh code. From our parser, we construct an abstract syntax tree (AST) only using nodes found in the Python ast standard library module. This allows us to compile and execute the AST using the normal Python tools.

Isn't context-sensitive parsing gross?

Yes. But the point of xonsh is that even though it uses context-sensitive parsing it is ultimately a lot less gross than other shell languages, such as Bash.

Is xonsh open source?

Yes! Xonsh is freely usable and accessible under the BSD-2-Clause license.