Skip to content
Back to top
View this page
Edit this page

# 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, Windows, BSD, Jupyter, Android and Raspberry Pi.

## Comparison

The following table lists built in features and capabilities that various tools may or may not share.

| Traditional bash, zsh | Next-generation fish, nu, elvish | Python‑based IPython, plumbum | Xonsh shell
--- | --- | --- | --- | ---
Meant as a shell | 🟢 | 🟢 |  | 🟢
Nice prompt | ◯ | 🟢 | 🟢 | 🟢
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:

- Xonsh Installation Guide
- AppImage
- Container

## 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.

- Tutorial
- Subprocess Strings
- Subprocess
- Python
- Subprocess Error Handling
- Extensions on Github
- Ask question

### 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.

- Run Control File
- Environment Variables
- Built-in Aliases
- History
- Keyboard Shortcuts
- Prompt
- Built-in Events
- Globbing
- Macros
- Xonsh Session
- Launch Options
- Cross-platform
- Open technical issue

### 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.

- Editor and IDE
- Virtual Environments
- Xonsh Projects
- Callable Aliases
- Events
- Environment
- Tab-Completion
- Extensions
- Embedding Xonsh
- Debug
- Xonsh API
- Create an extension

### 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.

- Developer’s Guide

- Xonsh Library Reference

- History Backend

- Contribute to documentation

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

- Become a sponsor to Xonsh.

## Links

- Index

- Module Index

- Search Page

- Xonsh Community

- Xonsh Fediverse

- Xonsh Matrix

- Xonsh Merch