| Crates.io | supershell |
| lib.rs | supershell |
| version | 0.4.1 |
| created_at | 2026-01-18 19:46:53.953529+00 |
| updated_at | 2026-01-18 19:46:53.953529+00 |
| description | A terminal-based RPG that teachers command line skills and cybersecurity concepts. |
| homepage | https://github.com/jalexlong/supershell |
| repository | https://github.com/jalexlong/supershell |
| max_upload_size | |
| id | 2052957 |
| size | 93,073 |
SuperShell is a terminal-based RPG that turns your command line into a video game.
It runs silently in the background of your actual shell (Zsh/Bash). As you navigate your file system and run real commands, SuperShell tracks your progress, unlocks chapters, and guides you through a sci-fi narrativeโall while teaching you actual CLI skills.
Start the game by launching the first mission:
supershell
Or start the game by opening the mission selector:
supershell --menu
If you're stuck on a certain task, try to get a hint from the system.
supershell --hint
SuperShell monitors your terminal activity via a shell hook. When you complete a task defined in a quest's YAML file located in the library/ directory, the engine provides immediate feedback, plays narrative cutscenes, and advances the quest state.
IsDirectory, PathMissing) and Regex pattern matching to verify objectives.supershell: Displays the current chapter title and your active objective.supershell --reset: Wipes all progress and restarts the curriculum from the beginning.supershell --menu: Displays the quest/module selection menu.supershell --hint: Displays a hint for the current in-game task.Supershell adheres to the XDG Base Directory Specification:
~/.local/share/supershell/quests.yaml~/.local/share/supershell/save.jsonIf you have Rust installed, you can grab the game directly from crates.io:
cargo install supershell
supershell
./supershell
(Note: The game will automatically install its game files to your system on the first run.)
Note on the Shell Hook: The installer adds a small function to your shell config. This function runs
supershell --check "$HISTORY"after every command you type, allowing the game to react to your actions in real-time.
Most missions take place inside a safe, sandboxed directory called The Construct:
~/Construct
The game will automatically generate files, folders, and puzzles inside this directory. You can delete it at any time; the game will rebuild it when you load a mission.
SuperShell is data-driven. You can write your own missions using YAML files in the library/ folder.
Example Quest Structure:
quests:
- id: "03_permissions"
title: "Module 03: Security"
construct: true # Requires user to be in ~/Construct
chapters:
- title: "The Locked Door"
intro: "You encounter a file you cannot read..."
setup_actions:
- type: CreateFile
path: "secret.data"
content: "TOP SECRET"
tasks:
- description: "Change permissions"
objective: "chmod +x secret.data"
conditions:
- type: CommandMatches
pattern: "^chmod \\+x"
"The game isn't reacting!"
supershell --menu.~/Construct (if the mission requires it)."I want to uninstall"
Remove the supershell binary and delete the lines added to your .zshrc or .bashrc.
rm -rf ~/.local/share/supershell
Summary:
This release radically simplifies installation. The supershell binary now carries the entire game library inside itself. When you run it for the first time, it automatically installs the necessary assets to your system.
New Features:
library/ folder is now embedded in the executable. No external installation scripts are required.cargo install supershell.library folder is missing (e.g., accidental deletion), it will automatically restore the default quests on the next launch.Changes:
install.sh and uninstall.sh (deprecated).setup_actions) are now handled gracefully. Missing fields no longer cause the application to panic or fail silently.01_awakening.[CRITICAL ERROR] instead of being swallowed silently.Read-only file system errors.install.sh data paths with Rust's native directories crate on macOS.Checkpoint to Task in internal logic.save.json files are incompatible. Run with --reset.Condition types (e.g., IsDirectory, WorkingDir) for robust validation.[ENTER] to advance cutscenes.--reset flag for easier testing.This project is licensed under the MIT License - see the LICENSE file for details.