Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

This is an old revision of the document!


Command Shell

A command shell is a special form of a Synchronet module which is responsible for displaying text (menus, prompts, etc.) to remote terminal users and accepting their input as commands to perform BBS functions (e.g. reading messages, downloading files, chatting, playing games, etc.).

In Synchronet v3, command shells are typically written in a BASIC-like language (in a .src file) and compiled with a program called Baja into an interpreted binary (.bin) file. While it is also possible to write command shells in JavaScript, doing so is not as easy as we intend it to be one day. For now, a JavaScript command shell actually requires a small .bin module (compiled Baja source) as a stub to load and execute the JavaScript (.js) file.

A BBS can have one or more command shells available for its users (configured in SCFG->Command Shells). If the BBS has more than one shell available, each user can pick their shell of preference in their user configuration menu and the BBS will remember their shell of choice and use it for each of their logon sessions. A sysop can even make select shells only available to specific groups/sub-groups of users based on a wide range of access criteria (including terminal type/capabilities).

There are many existing Synchronet command shells available (e.g. here and here). The default command shell (default.bin) is officially referred to as the Synchronet Classic Shell (it emulates the Synchronet v1 user interface) and if you and your users have no special requirements or preferences, it'll probably be the only shell you'll ever need (source code is exec/default.src). If you or your users are used to another BBS menu/command style, there are shells available which emulate the style of other classic BBS programs (e.g. WWIV, Renegade, PCBoard, MajorBBS, Wildcat!, etc.) as well as shells which are intended for use by users of limited BBS experience (e.g. Synchronet Simple Shell), and specialized shells (e.g. sdos emulates MS-DOS and lbshell is a full-screen light-bar shell by Deuce written in JavaScript).

Installing 3rd party command shells, modifying existing/stock command shells, or creating your own command shells from scratch are all options available to Synchronet sysops. These options provide the capability for a sysop to create a highly customized interface and experience for their BBS users.

See Also