xonsh ===== .. class:: center **xonsh** is a Python-powered shell. Full-featured and cross-platform. The language is a superset of Python 3.6+ with additional shell primitives. Xonsh word was made from *conch* (🐚, *@*) and indicates belonging to the command shells world. .. list-table:: :widths: 1 1 * - **Xonsh is the Shell** - **Xonsh is Python** * - .. code-block:: shell cd $HOME id $(whoami) cat /etc/passwd | grep root > ~/root.txt $PROMPT = '@ ' - .. code-block:: python 2 + 2 var = "hello".upper() import json; json.loads('{"a":1}') [i for i in range(0,10)] * - **Xonsh is the Shell in Python** - **Xonsh is Python in the Shell** * - .. code-block:: python len($(curl -L https://xon.sh)) $PATH.append('/tmp') p'/etc/passwd'.read_text().find('root') id = $(@json docker ps --format json)['ID'] - .. code-block:: python name = 'foo' + 'bar'.upper() echo @(name) > /tmp/@(name) ls @(input('file: ')) aliases['e'] = 'echo @(2+2)' aliases['a'] = lambda args: print(args) If you like xonsh, :star: the repo, `write a tweet`_ and stay tuned by watching releases. .. class:: center .. image:: https://img.shields.io/badge/Zulip%20Community-xonsh-green :target: https://xonsh.zulipchat.com/join/hbvue5rimpdkwkdjuiqfs7tv/ :alt: Join to xonsh.zulipchat.com .. image:: https://github.com/xonsh/xonsh/actions/workflows/test.yml/badge.svg :target: https://github.com/xonsh/xonsh/actions/workflows/test.yml :alt: GitHub Actions .. image:: https://codecov.io/gh/xonsh/xonsh/branch/master/graphs/badge.svg?branch=main :target: https://codecov.io/github/xonsh/xonsh?branch=main :alt: codecov.io .. image:: https://repology.org/badge/tiny-repos/xonsh.svg :target: https://repology.org/project/xonsh/versions :alt: repology.org First steps *********** Install xonsh from pip: .. code-block:: xonshcon python -m pip install 'xonsh[full]' And visit https://xon.sh for more information: - `Installation `_ - using packages, docker or AppImage. - `Tutorial `_ - step by step introduction in xonsh. Extensions ********** Xonsh has an extension/plugin system. We call these additions ``xontribs``. - `Xontribs on Github `_ - `Awesome xontribs `_ - `Core xontribs `_ - `Create a xontrib step by step from template `_ Projects that use xonsh or compatible ************************************* - `gitsome `_: Supercharged Git/shell autocompleter with GitHub integration. - `xxh `_: Using xonsh wherever you go through the SSH. - `rever `_: Cross-platform software release tool. - `Regro autotick bot `_: Regro Conda-Forge autoticker. - `zoxide `_: A smarter cd command. - `any-nix-shell `_: xonsh support for the ``nix run`` and ``nix-shell`` environments of the Nix package manager. - `Starship `_: Cross-shell prompt. - `x-cmd `_: x-cmd is a vast and interesting collection of tools guided by the Unix philosophy. - `lix `_: A modern, delicious implementation of the Nix package manager. Jupyter-based interactive notebooks via `xontrib-jupyter `_: - `Jupyter and JupyterLab `_: Interactive notebook platform. - `euporie `_: Terminal based interactive computing environment. - `Jupytext `_: Clear and meaningful diffs when doing Jupyter notebooks version control. The xonsh shell community ************************* The xonsh shell is developed by a community of volunteers. There are a few ways to help out: - Solve a `popular issue `_ or `high priority issue `_ or a `good first issue `_. You can start with the `Developer guide `_. - Take an `idea `_ and `create a new xontrib `_. - Become xonsh core by deep diving into xonsh and improve the threading and subprocess logic. - `Become a sponsor to xonsh `_. - `Write a tweet`_, post or an article to spread the good word about xonsh in the world. - Give a star to xonsh repository and to `xontribs `_ you like. We welcome new contributors! .. _write a tweet: https://twitter.com/intent/tweet?text=xonsh%20is%20a%20Python-powered,%20cross-platform,%20Unix-gazing%20shell%20language%20and%20command%20prompt.&url=https://github.com/xonsh/xonsh Credits ******* - Thanks to `Zulip `_ for supporting the xonsh community!