A command shell is a program that lets the user run other programs. It also provides a programming language for scripting the invocation of programs and some interactions between them.

In haiku: all there is to shok { write code in curly braces } : colon runs commands

Most command shells have lousy scripting languages, in part because the programming syntax needs to disguise itself around (or make itself a part of) the shell's default action: running programs. Alternatively, programming languages often provide an ability to invoke external programs, but usually it is difficult or impossible to use as an interactive shell. (With a few exceptions — notably, Julia does a pretty good job.)

shok takes a different approach to minimize this trade-off. It provides a natural syntax for switching between the command shell and a fully-featured programming language.