Skip to content

Latest commit

 

History

History
143 lines (89 loc) · 5.66 KB

README.rst

File metadata and controls

143 lines (89 loc) · 5.66 KB

xonsh

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

id = $(@json docker ps --format json)['ID']
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, ⭐ 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

  • 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:

We welcome new contributors!

Credits

  • Thanks to Zulip for supporting the xonsh community!