Metadata-Version: 2.4
Name: xonsh
Version: 0.19.4
Summary: Python-powered shell. Full-featured and cross-platform.
Author: Anthony Scopatz
Author-email: scopatz@gmail.com
Maintainer: Xonsh Community
Maintainer-email: xonsh@gil.forsyth.dev
License: BSD 2-Clause License
Project-URL: Homepage, https://xon.sh
Project-URL: documentation, https://xon.sh/contents.html
Project-URL: repository, https://github.com/xonsh/xonsh
Project-URL: changelog, https://github.com/xonsh/xonsh/blob/main/CHANGELOG.rst
Project-URL: Issue tracker, https://github.com/xonsh/xonsh/issues
Platform: Cross Platform
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
License-File: AUTHORS.rst
Provides-Extra: ptk
Requires-Dist: prompt-toolkit>=3.0.29; extra == "ptk"
Requires-Dist: pyperclip; extra == "ptk"
Provides-Extra: pygments
Requires-Dist: pygments>=2.2; extra == "pygments"
Provides-Extra: mac
Requires-Dist: gnureadline; extra == "mac"
Provides-Extra: linux
Requires-Dist: distro; extra == "linux"
Provides-Extra: proctitle
Requires-Dist: setproctitle; extra == "proctitle"
Provides-Extra: full
Requires-Dist: xonsh[ptk,pygments]; extra == "full"
Requires-Dist: distro; platform_system == "Linux" and extra == "full"
Requires-Dist: setproctitle; platform_system == "Windows" and extra == "full"
Requires-Dist: gnureadline; platform_system == "Darwin" and extra == "full"
Requires-Dist: ujson; extra == "full"
Provides-Extra: bestshell
Requires-Dist: prompt-toolkit>=3.0.29; extra == "bestshell"
Requires-Dist: pygments>=2.2; extra == "bestshell"
Provides-Extra: test
Requires-Dist: xonsh[bestshell]; extra == "test"
Requires-Dist: pytest>=7; extra == "test"
Requires-Dist: restructuredtext_lint; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-mock; extra == "test"
Requires-Dist: pytest-timeout; extra == "test"
Requires-Dist: pytest-subprocess; extra == "test"
Requires-Dist: pytest-rerunfailures; extra == "test"
Requires-Dist: prompt-toolkit>=3.0.29; extra == "test"
Requires-Dist: pygments>=2.2; extra == "test"
Requires-Dist: coverage>=5.3.1; extra == "test"
Requires-Dist: pyte>=0.8.0; extra == "test"
Requires-Dist: virtualenv>=20.16.2; extra == "test"
Requires-Dist: requests; extra == "test"
Provides-Extra: dev
Requires-Dist: xonsh[doc,test]; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: re-ver; extra == "dev"
Requires-Dist: tomli; extra == "dev"
Provides-Extra: doc
Requires-Dist: xonsh[bestshell]; extra == "doc"
Requires-Dist: furo; extra == "doc"
Requires-Dist: numpydoc; extra == "doc"
Requires-Dist: sphinx>=3.1; extra == "doc"
Requires-Dist: psutil; extra == "doc"
Requires-Dist: pyzmq; extra == "doc"
Requires-Dist: matplotlib; extra == "doc"
Requires-Dist: tornado; extra == "doc"
Requires-Dist: runthis-sphinxext; extra == "doc"
Requires-Dist: livereload; extra == "doc"
Requires-Dist: myst-parser; extra == "doc"
Dynamic: license-file

xonsh
=====

.. raw:: html

    <img src="https://avatars.githubusercontent.com/u/17418188?s=200&v=4" alt="Xonsh shell icon." align="left" width="100px">

**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.

.. raw:: html

    <br clear="left"/>

.. 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')

            xontrib load dalias
            id = $(@json docker ps --format json)['ID']

      -  .. code-block:: python

            name = 'foo' + 'bar'.upper()
            echo @(name) > /tmp/@(name)

            ls @(input('file: '))
            touch @([f"file{i}" for i in range(0,10)])

            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/
            :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 <https://xon.sh/contents.html#installation>`_ - using packages, docker or AppImage.
- `Tutorial <https://xon.sh/tutorial.html>`_ - step by step introduction in xonsh.

Extensions
**********

Xonsh has an extension/plugin system.  We call these additions ``xontribs``.

- `Xontribs on Github <https://github.com/topics/xontrib>`_
- `Awesome xontribs <https://github.com/xonsh/awesome-xontribs>`_
- `Core xontribs <https://xon.sh/api/_autosummary/xontribs/xontrib.html>`_
- `Create a xontrib step by step from template <https://github.com/xonsh/xontrib-template>`_

Projects that use xonsh or compatible
*************************************

- `conda <https://conda.io/projects/conda/en/latest/>`_ and `mamba <https://mamba.readthedocs.io/en/latest/>`_: Modern package managers.
- `Starship <https://starship.rs/>`_: Cross-shell prompt.
- `zoxide <https://github.com/ajeetdsouza/zoxide>`_: A smarter cd command.
- `gitsome <https://github.com/donnemartin/gitsome>`_: Supercharged Git/shell autocompleter with GitHub integration.
- `xxh <https://github.com/xxh/xxh>`_: Using xonsh wherever you go through the SSH.
- `Snakemake <https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#xonsh>`_: A workflow management system to create reproducible and scalable data analyses.
- `any-nix-shell <https://github.com/haslersn/any-nix-shell>`_: xonsh support for the ``nix run`` and ``nix-shell`` environments of the Nix package manager.
- `lix <https://github.com/lix-project/lix>`_: A modern, delicious implementation of the Nix package manager.
- `x-cmd <https://www.x-cmd.com/>`_: x-cmd is a vast and interesting collection of tools guided by the Unix philosophy.
- `rever <https://regro.github.io/rever-docs/>`_: Cross-platform software release tool.
- `Regro autotick bot <https://github.com/regro/cf-scripts>`_: Regro Conda-Forge autoticker.

Jupyter-based interactive notebooks via `xontrib-jupyter <https://github.com/xonsh/xontrib-jupyter>`_:

- `Jupyter and JupyterLab <https://jupyter.org/>`_: Interactive notebook platform.
- `euporie <https://github.com/joouha/euporie>`_: Terminal based interactive computing environment.
- `Jupytext <https://jupytext.readthedocs.io/>`_: 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 <https://github.com/xonsh/xonsh/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc>`_ or `high priority issue <https://github.com/xonsh/xonsh/issues?q=is%3Aopen+is%3Aissue+label%3Apriority-high+sort%3Areactions-%2B1-desc>`_ or a `good first issue <https://github.com/xonsh/xonsh/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22+sort%3Areactions-%2B1-desc>`_. You can start with the `Developer guide <https://xon.sh/devguide.html>`_.
- Take an `idea <https://github.com/xonsh/xontrib-template/issues?q=is%3Aopen+is%3Aissue+label%3Aidea+sort%3Areactions-%2B1-desc>`_ and `create a new xontrib <https://github.com/xonsh/xontrib-template#why-use-this-template>`_.
- Contribute to `xonsh API <https://github.com/xonsh/xonsh/tree/main/xonsh/api>`_.
- Become xonsh core developer by deep diving into xonsh internals. E.g. we feel a lack of Windows support.
- `Become a sponsor to xonsh <https://github.com/sponsors/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 <https://github.com/topics/xontrib>`_ 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 <https://zulip.com/>`_ for supporting the `xonsh community <https://xonsh.zulipchat.com/>`_!
