Skip to main content

Python-powered shell. Full-featured and cross-platform.

Project description

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.

Xonsh is the Shell

Xonsh is Python

cd $HOME

id $(whoami)

cat /etc/passwd | grep root > ~/root.txt

$PROMPT = '@ '
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

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

Join to xonsh.zulipchat.com GitHub Actions codecov.io repology.org

First steps

Install xonsh from pip:

python -m pip install 'xonsh[full]'

And visit https://xon.sh for more information:

Extensions

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

Projects that use xonsh or compatible

  • conda and mamba: Modern package managers.

  • Starship: Cross-shell prompt.

  • zoxide: A smarter cd command.

  • gitsome: Supercharged Git/shell autocompleter with GitHub integration.

  • xxh: Using xonsh wherever you go through the SSH.

  • any-nix-shell: xonsh support for the nix run and nix-shell environments of the Nix package manager.

  • lix: A modern, delicious implementation of the Nix package manager.

  • x-cmd: x-cmd is a vast and interesting collection of tools guided by the Unix philosophy.

  • rever: Cross-platform software release tool.

  • Regro autotick bot: Regro Conda-Forge autoticker.

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:

We welcome new contributors!

Credits

  • Thanks to Zulip for supporting the xonsh community!

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xonsh-0.18.3.tar.gz (792.7 kB view hashes)

Uploaded Source

Built Distributions

xonsh-0.18.3-py312-none-any.whl (637.4 kB view hashes)

Uploaded Python 3.12

xonsh-0.18.3-py311-none-any.whl (637.4 kB view hashes)

Uploaded Python 3.11

xonsh-0.18.3-py310-none-any.whl (637.4 kB view hashes)

Uploaded Python 3.10

xonsh-0.18.3-py39-none-any.whl (629.6 kB view hashes)

Uploaded Python 3.9

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page