Xonsh (sounds like "consh") is a modern, full-featured and cross-platform Python-based shell. The language is a superset of Python 3 with seamless integration of shell functionality and commands. It works on all major systems including Linux, OSX, and Windows. Xonsh is meant for the daily use of experts and novices.
Install Docs Github SponsorThe xonsh as a python shell lets you easily mix Python and shell commands in a powerful and simplified approach to the command line.
The xonsh language provides the shell primitives commonly found in traditional Unix shells, including interaction with standard utilities, pipelines, and input/output streams. Read more →
cd $HOME id $(whoami) > ~/id.txt cat /etc/passwd | grep root $PROMPT = '@ '
The xonsh language is a superset of Python 3, allowing you to execute Python code directly, install and use third-party libraries, import modules, and take advantage of the broader Python ecosystem and tooling.
2 + 2 var = "hello".upper() @.imp.json.loads('{"a":1}') [i for i in range(0,10)]
Xonsh provides a unified environment where shell functionality and Python code work together naturally.
len($(curl -L https://xon.sh)) $PATH.append('/tmp') p'/etc/passwd'.read_text().find('usr') id = $(@json podman ps --format json)['ID'] cfg = $(@yaml cat config.yaml)
Xonsh shell session builtins allow xonsh to function as a fully featured shell, tightly integrated with the operating system and its environment.
name = 'snail' echo @(name) > /tmp/@(name) with p'/tmp/dir'.mkdir().cd(): touch @(input('Create file: ')) aliases['e'] = 'echo @(2+2)' aliases['a'] = lambda args: print(args)
Xonsh can orchestrate and unify other shells and tools, allowing you to combine external programs into a single programmable environment.
xontrib load sh \
fish_completer
def nudf(cmd):
return @.imp.pandas.DataFrame(
@.imp.json.loads(
$(nu -c @(cmd + '| to json'))))
nudf!(ls -la)
aliases['ai'] = 'ollama run llama3'
ai! command to remove images from podman
Xonsh extends beyond a shell through xontribs — community-driven plugins that integrate frameworks, developer tools, AI assistants, themes, and system features into a cohesive ecosystem.
xontrib load term_integration \
prompt_starship \
powerline \
dracula \
chatgpt \
django \
jupyter \
1password \
github_copilot \
history_encrypt
Xontributions, or xontribs, are a set of tools and conventions for extending the functionality of xonsh.
Let your pipe lines from the standard output flow thru the Python code in the xonsh shell.
Get identifiers, paths, URLs and words from the previous command output and use them for the next command in the xonsh shell.
Return to the most recently used directory when starting the xonsh shell.
Argcomplete support to tab completion of python and xonsh scripts in the xonsh shell.