This is an old revision of the document!
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 (
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
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.