The shell is dash, compiled from C. We run each command as
dash -c "$COMMAND"
Processes can change their current directory (We support the chdir(2) system call), but the way the shell demo is currently implemented no state is retained between command invocations. We plan to address this shortcoming soon as part of a bigger TTY refactoring.
That means their claim that "Unmodified C, C++, Go, and Node.js programs run as processes on Web Workers"
...is not true, as otherwise they could've just "compiled" e.g. bash or some other shell to run on their system, along with GNU coreutils or similar.