ShellGym is a background daemon with a built-in web UI that turns any Linux box into an interactive command-line trainer.
"Learn the idea in a tutorial. Build the reflex in ShellGym."
Tutorials explain concepts - ShellGym drills them, helping you form the right muscle memory. Open a split-screen: a completely ordinary terminal on the one side, and the ShellGym UI on the other. The UI shows small, fast-changing assignments - reps (in the traditional gym sense). Each rep asks for one concrete action (enter a directory, create a file, kill a process, free a port) and completes automatically the moment the system state changes. There is no "check" button and no copy-paste: you will have to type real commands into a real shell, and the gym trainer will observe your actions and guide you on the way.
Tip
Try it online: ShellGym Playground (requires a free sign-up with GitHub)
shellgym-demo.mp4
Reading about navigating the file tree, stdio redirection, or signals is not the same as being able to perform these actions without thinking. That fluency comes only from hands-on practice and repetition - and this is what ShellGym provides.
The student's shell is not modified in any way: no prompt hooks, no wrappers, no special shell functions. All observation happens from the outside, meaning you work in the regular Linux terminal.
The Linux "magic" ShellGym uses to achieve "zero instrumentation" observation:
- procfs - discovering the interactive shells, reading their working directories, scanning processes, files, and ports.
- the kernel proc connector - a netlink firehose of every
exec()on the box, used to notice which commands the user runs. - plain state checks - files existing, processes running, ports listening.
Because nothing is injected into the shell, the skills practiced in the gym transfer one-to-one to any real terminal. See detection.md for how each mechanism works.