A quirky, powerful custom shell written in Go — with support for built-in commands, aliasing, history, and a secret Skibidi Mode for real Rizzards! 🚽
- 🧱 Built-in Commands:
ls,cd,echo,help,pwd, etc. - 🧠 Command Aliasing:
alias ll ls -la - 📜 Command History: Scroll through previously entered commands
- 🪄 Skibidi Mode: Type commands like
giga-walk,rizz-echo, andbrainblast - 🪢 Pipes Support: Use
|to chain commands - 🌐 External Commands: Executes any binary available in
$PATH - 🧽 Environment Interaction:
env,setenv,unsetenv - 📂 File Viewing:
cat,clear,which
go run main.go| Command | Description |
|---|---|
ls [-l] [-a] [dir] | List files (long/hidden supported) |
cd <dir> | Change working directory |
pwd | Print working directory |
cat <file> | Print contents of a file |
echo <args> | Print arguments to terminal |
clear | Clear the terminal screen |
help | Show help for built-in commands |
history | Show previously entered commands |
alias <name> <cmd> | Define a new alias |
unalias <name> | Remove a defined alias |
which <cmd> | Show if command is built-in or system binary |
env | Show all environment variables |
setenv <k> <v> | Set an environment variable |
unsetenv <k> | Remove an environment variable |
skibidi-help | List Skibidi-mode command equivalents |
Potato Shell has a special Skibidi Mode for ultra-Rizzards.
In this mode, common commands are remapped to ridiculous but fun aliases:
| Skibidi Command | Normal Command |
|---|---|
giga-walk | cd |
skibidi-peek | ls |
rizz-echo | echo |
brainblast | help |
old-tales | history |
save-my-bits | alias |
unskibidi | unalias |
wheres-it-at | which |
toxic-vars | env |
spawn-var | setenv |
nuke-var | unsetenv |
cat-jam | cat |
mirror-me | pwd |
wipe-it | clear |
skibidi-help | Shows this table 🧌 |
Use skibidi-help anytime in Skibidi Mode to see this again.
alias ll ls -la ll giga-walk .. rizz-echo Yo, I’m in Skibidi Mode 🚽 save-my-bits greet echo Hello Rizz greetmain.go # Entry point: handles user input loop, mode selection, and REPL logic /shell # Core shell functionality and command orchestration dispatcher.go # Dispatches built-in commands and handles Skibidi mode remapping executor.go # Executes parsed commands (either built-in or external binaries) parser.go # Parses user input, handles alias expansion and tokenization pipes.go # Supports piped commands using io.Pipe and chaining prompt.go # Displays the dynamic shell prompt (path + mode indicator) /builtins # Each built-in command is implemented in its own file ls.go # Implementation of `ls` (with `-a`, `-l` options) cd.go # Changes the current working directory echo.go # Prints arguments to stdout help.go # Displays general help and usage history.go # Prints previously executed commands alias.go # Adds/removes aliases (`alias`, `unalias`) env.go # Prints all environment variables (`env`) setenv.go # Sets an environment variable (`setenv`) unsetenv.go # Unsets an environment variable (`unsetenv`) which.go # Displays whether a command is built-in or external (`which`) pwd.go # Prints the current directory (`pwd`) clear.go # Clears the terminal screen (`clear`) cat.go # Outputs the contents of files (`cat`) skibidi_help.go # Displays the mapping of Skibidi commands to normal commands /helper utilis.go #contains helper functions to check existance and emptyness of commands- ✅ Standard Go library
- [Optional]
mvdan.cc/sh— For advanced POSIX-style shell parsing (not required by default)
- Go: 1.18 or higher
- ✅ Linux — Fully supported
- 🪟 Windows — Partial support
- 🍎 macOS — Basic support (not fully tested)
xdg-open(Linux)cmd /C start(Windows)
- Single-threaded by design
- No job control (
&,fg,bg) yet - Pipe support is basic (no redirection or subshells)
- Skibidi Mode is toggleable only at launch (for now)
- Shells: Bash, Zsh, Fish
- Culture: Memes, Rizz, and insta feed of @devvmuhammad
- Tech: Love for 🥔 potatoes and Go
MIT License
Do anything you want. Just don't run:
unalias rizz