:}

the shok command shell

shok is a cross-platform non-POSIX interactive command shell. Similar to bash and cmd.exe, it allows the user to invoke programs and script their execution. shok will provide a secure, platform-agnostic, and user-friendly programming language that is designed to facilitate filesystem interaction and system management.

shok is in the very early stages of development, and is not currently usable. A reference compiler is under heavy development, and many features are planned, but most are unimplemented or still under discussion. The examples on this page are mockups from the future and do not work yet! We also understand that it is dangerous to use a shell that has not withstood rigorous testing. If you are interested in shok, please get involved in the language and compiler development!

The shok approach:

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.

Contribute and hang out:

The source code is currently hosted on GitHub. Clone the project:git clone 'git@github.com:nfomon/shok.git'

Please note that it is in the very early stages of development, and probably won't even compile. If it does, be careful! Consider this a call for hackers.

shok is free software licensed under the GNU GPL v3+. Its development relies on a community of developers, supporters, and financial givers. To help bring it to life, you can contribute with code or by donating bitcoins to: 1MgmzHtr5ZwaVSoRzEWN7iwEMf3CZ6bhzF.

Most importantly, join the discussion! A mailing list is on the way. For now, come hang out on IRC: freenode #shok. Feedback, ideas, gripes, and lurkers are welcome.