Void Shell, or Vsh, is a custom, simple Unix-style shell focusing on speed, minimalism, and clarity.
- Minimal Builtin Set – Unix model is preserved and overlap with existing utilities is prevented.
- Recursive-Descent Parser – Semantics are clear, controllable, and extensible.
- Builtin Debug Modes – Display token streams and AST structure for convenience.
- Modular Architecture – New features and extensions are easily accommodated.
Standard Unix commands work as usual:
vsh> pwd
/your/current/path
vsh> echo hello world
hello world
vsh> echo hello; echo world
hello
world
vsh> echo hello world | tr a-z A-Z
HELLO WORLDDebug commands require the input to be passed as a single quoted string.
For example, using tokens:
vsh> tokens "echo hello world"
4 | WORD 'echo'
10 | WORD 'hello'
16 | WORD 'world'
16 | EOFAnd using ast:
vsh> ast "echo hello world"
SEQUENCE
╰ PIPELINE
╰ COMMAND (ECHO) ["hello", "world"]- POSIX-compatible system
- C compiler supporting C17
- CMake 3.20+
-
Clone the repo:
git clone https://github.com/williamalexakis/void-shell.git cd void-shell -
Build the project:
mkdir build cd build cmake .. cmake --build .
To get started, run the executable and use help to see all builtin commands.