the xonsh shell#
~
~
Xonsh is a Python-powered, cross-platform, Unix-gazing shell language and command prompt. The language is a superset of Python 3.5+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, Mac OSX, and Windows. Xonsh is meant for the daily use of experts and novices alike.
Comparison#
Xonsh is significantly different from most other shells or shell tools. The following table lists built in features and capabilities that various tools may or may not share.
Bash |
zsh |
plumbum |
fish |
IPython |
xonsh |
|
---|---|---|---|---|---|---|
Practical language |
β |
β |
β |
β |
||
Easily scriptable |
β |
β |
β |
β |
β |
|
Native cross-platform support |
β |
β |
β |
β |
||
Meant as a shell |
β |
β |
β |
β |
||
Tab completion |
β |
β |
β |
β |
β |
|
Completion from man-page parsing |
β |
β |
||||
Large standard library |
β |
β |
β |
|||
Typed variables |
β |
β |
β |
β |
||
Syntax highlighting |
β |
in notebook |
w/ prompt-toolkit |
|||
Pun in name |
β |
β |
β |
|||
Rich history |
β |
Installation#
Xonsh can be installed and run with various package managers, by using appimage, or from a docker container:
Guides#
- Tutorial
- Tutorial: History
- Tutorial: Macros
- Tutorial: Extensions (Xontribs)
- Tutorial: Xonsh Projects
- Tutorial: Events
- Tutorial: Programmable Tab-Completion
- Tutorial: Write Your Own History Backend
- Tutorial: Subprocess Strings
- Tutorial:
prompt_toolkit
custom keybindings - Bash to Xonsh Translation Guide
- Editor and IDE Support
- Subprocess Types Table
- Python Virtual Environments
- Keyboard Shortcuts
Config Files and Settings#
Contributing#
We highly encourage contributions to xonsh! If you would like to contribute, it is as easy as forking the repository on GitHub, making your changes, and issuing a pull request. If you have any questions about this process donβt hesitate to ask the mailing list (xonsh@googlegroups.com) or the Gitter channel.
See the Developerβs Guide for more information about contributing.
Python versions support policy#
Xonsh adopts NEP-0029 in supporting Python versions. Simply speaking a minor Python release (X.*) will be supported for 42 months from its date of initial release. Since Python has adopted yearly release cycle, most of the time, the latest 4 minor versions of Python would be supported at any given time.
Contact Us#
If you have questions or comments, please:
Helpful Links#
Development Spiral#
- Xonsh API
- xonsh.lexer
- xonsh.parser
- xonsh.ast
- xonsh.execer
- xonsh.imphooks
- xonsh.built_ins
- xonsh.environ
- xonsh.aliases
- xonsh.dirstack
- xonsh.jobs
- xonsh.procs
- xonsh.inspectors
- xonsh.history
- xonsh.completer
- xonsh.completers
- xonsh.prompt
- xonsh.shell
- xonsh.base_shell
- xonsh.readline_shell
- xonsh.ptk_shell
- xonsh.pretty
- xonsh.diff_history
- xonsh.xoreutils
- xonsh.events
- xonsh.lib
- xonsh.tools
- xonsh.platform
- xonsh.jsonutils
- xonsh.lazyjson
- xonsh.lazyasd
- xonsh.openpy
- xonsh.foreign_shells
- xonsh.commands_cache
- xonsh.tracer
- xonsh.main
- xonsh.color_tools
- xonsh.pyghooks
- xonsh.dumb_shell
- xonsh.wizard
- xonsh.xonfig
- xonsh.xontribs
- xonsh.codecache
- xonsh.contexts
- xontrib
- Advanced Events
- Developerβs Guide
- Xonsh Change Log
- Frequently Asked Questions
- Wishlist & To-Dos