A modern, modular terminal with custom commands, layered architecture, multi-modal output, and intelligent presentation.
ShellX Terminal Architecture
+----------------------------------------------------------+
| User Input |
+----------------------------------------------------------+
|
v
+----------------------------------------------------------+
| Command Pipeline |
| +----------+ +----------+ +--------+ +---------+ |
| | Intent |->| Validate |->| Plan |->| Execute | |
| +----------+ +----------+ +--------+ +---------+ |
+----------------------------------------------------------+
|
v
+----------------------------------------------------------+
| Multi-Modal Output |
| Text | Table | List | Tree | KeyValue | Progress |
| Success | Error | Warning | Info | Diff | Composite |
+----------------------------------------------------------+
|
v
+----------------------------------------------------------+
| Presentation Layer |
| default | compact | detailed | json | minimal |
+----------------------------------------------------------+
- Custom Commands: Fully customizable commands with parameters, flags, validation
- Layer Architecture: 5-stage pipeline (Intent, Validate, Plan, Execute, Present)
- Multi-Modal Output: 12+ output types (tables, trees, lists, progress, etc.)
- Smart Presentation: 5 display modes with automatic formatting
- Composable: Chain commands and build workflows
- Self-Documenting: Auto-generated help from command definitions
# Clone the repository
git clone https://github.com/user/shellx-terminal
cd shellx-terminal
# Install dependencies
bun install
# Run the terminal
bun run start# Navigate to web folder
cd web
# Install dependencies
npm install
# Start development server
npm starthi- Say hellohelp- Show helpclear- Clear screenpwd- Current directory
lsx [path] [--tree] [--long]- Rich directory listinginfo <path>- File informationsearch <pattern> [-r]- Search filesdu [path]- Disk usageenv [--all]- Environment info
ls- List filescd <dir>- Change directorymkdir <name>- Create directorytouch <file>- Create filerm <file>/rm -rf <dir>- Removemv <src> <dst>- Move/renamecat <file>- View file
git <command>- Git commandsexit- Exit terminal:mode <mode>- Switch presentation mode
Switch modes at runtime with :mode <name>:
default- Standard formatting with colorscompact- Reduced whitespacedetailed- Full details with timingjson- Raw JSON outputminimal- Essential only
MIT