The Xonsh Shell¶
~
~
Xonsh (sounds like “consh”) is a 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, macOS, and Windows. Xonsh is meant for the daily use of experts and novices.
Comparison¶
The following table lists built in features and capabilities that various tools may or may not share.
Traditional |
Next-generation |
Python‑based |
Xonsh |
|
|---|---|---|---|---|
Meant as a shell |
🟢 | 🟢 | 🟢 | |
First-class objects |
◯ | 🟢 | 🟢 | |
Native cross-platform |
◯ | 🟢 | 🟢 | |
Large standard library |
◯ | ◯ | 🟢 | |
General-purpose language |
◯ | 🟢 | ||
Built-in testability |
◯ | 🟢 | ||
Maintains clarity at scale |
🟢 | |||
User-patchable |
🟢 | |||
Package and deps manager |
🟢 | |||
AI-friendly |
🟢 |
Installation¶
Xonsh can be installed and run with various methods:
Docs¶
Beginner¶
The fundamentals of using Xonsh, including basic commands, syntax, and how subprocesses work in practice. This section introduces key concepts step by step and helps you build a solid foundation for working in the shell.
Regular User¶
How to use Xonsh efficiently in daily workflows by configuring environment variables, aliases, and history. It also covers customization options, keyboard shortcuts, and practical tips to improve productivity and streamline your command-line experience.
Creator¶
How to extend Xonsh by building projects, creating extensions, and customizing tab-completion. This section also explores deeper integrations, event handling, and advanced customization techniques for building powerful developer tools.
Contributor¶
The internal architecture of Xonsh and how to work with its API. It also guides you through contributing to the project, understanding the codebase, and collaborating with others.
Write a note or an article about xonsh.
Send a link to Xonsh to your favorite blogger.
Add xonsh support in third party tool: package manager, terminal emulator, console tool, IDE.
Give a star to xonsh repository and to xontribs you like.
Solve a popular issue or high priority issue or a good first issue.
Take an idea and create a new xontrib.
Contribute to Xonsh Public API.
Test xonsh with compiler, interpreter, optimizer and report upstream issues (e.g. Nuitka, RustPython).
Use high quality LLMs with max effort and testing to dive into the core, suggest improvements, refactor and fix issues.
Design more logos and images, improve xonsh website (src).