xonsh
Python-powered shell. Full-featured, cross-platform and AI-friendly.
Decision gist · record as of 2026-08-14
Yes. Xonsh is actively maintained, has no external runtime dependencies, and offers a genuinely novel way to combine Python and shell scripting. It's worth trying if you spend significant time in both environments and want to unify them. The permissive license and broad platform support make it low-risk to evaluate. Start with the tutorial at xon.sh/tutorial.html to see if the syntax and workflow fit your needs.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11 or later.
- Low friction install with wheels available for Python 3.11 through 3.14.
- Active maintenance with a recent release (14 days old) and steady community engagement (9600 GitHub stars).
License · maintenance · safety
BSD 2-Clause License (permissive) — BSD 2-Clause License is permissive, allowing use in both open-source and proprietary projects with minimal restrictions beyond attribution.
last release 2026-07-31 (14 days) · last repo commit 2026-08-14 · 9,600 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 390,560 downloads/mo, #7,021 on PyPI
Alternatives
Verify before relying
pip install xonsh
# Start the shell
xonsh
# In xonsh, mix Python and shell:
echo @('hello'.upper())
var = $(ls -la)
print(len(var))- Whether xonsh works identically across all advertised platforms (Linux, macOS, Windows, BSD, Jupyter, Android, Raspberry Pi) or if some have limitations.
- Performance characteristics when running complex Python scripts or long-running shell sessions compared to traditional shells.
- Compatibility with existing shell scripts written for bash or zsh without modification.
What it is and what it does
Xonsh is a full-featured shell that treats Python 3 as its base language and adds shell syntax on top, rather than the reverse. You write commands using Python expressions, list comprehensions, and imports directly in the shell, and invoke external programs with shell-style syntax. It runs on Linux, macOS, Windows, BSD, and other platforms, and integrates with Jupyter notebooks.
The package is useful when you want to automate tasks, manage system operations, or explore data interactively without switching between a Python REPL and a traditional shell. It supports an extension system called xontribs for adding features like custom prompts, keybindings, and integrations with tools like Starship, ChatGPT, and GitHub Copilot. With no runtime dependencies, it installs cleanly and works out of the box.
Use it for
- Write shell scripts that leverage Python's data structures, comprehensions, and standard library without subprocess calls.
- Interactively explore files and system state using Python syntax (e.g., p'/etc/passwd'.read_text()) alongside traditional commands.
- Automate DevOps tasks by mixing shell commands with Python logic in a single script without context switching.
- Build reproducible workflows in tools like Snakemake that need both shell commands and Python control flow.
- Extend the shell with custom keybindings and event handlers using Python decorators and event hooks.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Xonsh is actively maintained, has no external runtime dependencies, and offers a genuinely novel way to combine Python and shell scripting. It's worth trying if you spend significant time in both environments and want to unify them. The permissive license and broad platform support make it low-risk to evaluate. Start with the tutorial at xon.sh/tutorial.html to see if the syntax and workflow fit your needs.
Install
xonsh on PyPI
Before you install
Low friction install with wheels available for Python 3.11 through 3.14. Active maintenance with a recent release (14 days old) and steady community engagement (9600 GitHub stars). No runtime dependencies to manage.
Requires Python 3.11 or later.
License in practice
BSD 2-Clause License is permissive, allowing use in both open-source and proprietary projects with minimal restrictions beyond attribution.
Quickstart
pip install xonsh
# Start the shell
xonsh
# In xonsh, mix Python and shell:
echo @('hello'.upper())
var = $(ls -la)
print(len(var))
Verify before relying
- Whether xonsh works identically across all advertised platforms (Linux, macOS, Windows, BSD, Jupyter, Android, Raspberry Pi) or if some have limitations.
- Performance characteristics when running complex Python scripts or long-running shell sessions compared to traditional shells.
- Compatibility with existing shell scripts written for bash or zsh without modification.
Package facts
| License | BSD 2-Clause License permissive |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 14 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 390,560 / month, #7,021 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: xonsh-0.24.1-py311-none-any.whl; xonsh-0.24.1-py312-none-any.whl; xonsh-0.24.1-py313-none-any.whl; xonsh-0.24.1-py314-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “cross-platform shell scripting”
- xonshXonsh is a Python-based shell that merges Python 3 syntax with shell…
- plumbumPlumbum lets you write shell-script-like programs in Python with…
- ms-fabric-cliA command-line interface for Microsoft Fabric that lets you navigate…
Give your agent the search over MCP, or paste the wish link into any chat.
More Terminals packages
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
Rich renders styled text, tables, progress bars, syntax highlighting, markdown, and tracebacks to the terminal with minimal code.
Colorama makes ANSI escape sequences for colored terminal text work on Windows by intercepting and converting them to win32 API calls, while passing through unchanged on other platforms.
Install it if you need colored terminal output to work on Windows or want to use ANSI-based libraries portably; skip it only if you target non-Windows platforms…
Measures the displayed width of Unicode strings in terminals, accounting for wide characters, combining marks, and terminal escape sequences that standard Python string functions mishandle.
Install it if your application formats text for terminals and handles non-ASCII characters.
Run a subprocess in a pseudo terminal (pty) and interact with its input and output, enabling automation of interactive programs that require terminal features like password prompts or curses-style interfaces.
However, note that it is aging (last release 2020-12-28) and not actively maintained; it works well for its narrow, well-defined purpose but won't receive updates for…
Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.
See also bash_kernel · subprocess.run · poetry-plugin-shell · bashlex · dep-sync · expandvars · bash · plumbum · jupyter-server-terminals · whichcraft