Skip to main content

XShell

XShell is a feature-rich, cross-platform interactive shell built entirely in Python. It runs as a native terminal application or as a browser-based web terminal — same core engine, both modes.

__ __ _____ _ _ _
\ \/ // ____|| | | | |
> <| (___ | |__ ___| | |
/ /\ \\___ \ | '_ \ / _ \ | |
/ ____ \___) || | | | __/ | |
/_/ \_\____/ |_| |_|\___|_|_|
v1.0

Why XShell?

ProblemXShell's solution
Terminals behave differently on every OSSingle Python codebase, identical UX on Windows/macOS/Linux
Typos waste timeLevenshtein autocorrect suggests the right command
Customisation requires dotfile archaeologyOne JSON config, one theme set command
Shell extensions are hard to writePlugin base class + register_command() — 10 lines
No web accesspython main.py --web opens a browser terminal

What's included

  • 27 built-in commands — navigation, file ops, env, aliases, history, themes, plugins
  • Pluggable command system — built-in, user, and project-local plugins at runtime
  • 5 bundled themes — catppuccin, github-dark, gruvbox, onedark, tokyo-night
  • Full pipeline support|, >, >>, <, &&, ||, ;, &
  • Tab completion — commands, files, aliases, plugin commands
  • Ctrl+R reverse history search
  • Persistent history — survives restarts, stored in ~/.xshell/history
  • Standalone executables — build with PyInstaller via python build.py

Quick start

# Clone and enter
git clone https://github.com/srs-sudeep/XShell.git
cd XShell

# Install (with bun for docs; pip for the shell itself)
pip install -r requirements.txt

# Launch native shell
python main.py

# Or open in browser
python main.py --web

See Getting Started for a full walkthrough.