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. It is also possible to write command shells in JavaScript. In Synchronet versions prior to v3.20, a JavaScript command shell actually required 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.js
) 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.js
). 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).
Shells included with Synchronet:
- Synchronet (Classic) (
default.js
) - Synchronet (Novice) (
simple.bin
) - WWIV Clone (
wwiv.bin
) - PCBoard Clone (
pcboard.bin
) - Wildcat Clone (
wildcat.bin
) - MajorBBS Clone (
major.bin
) - Renegade Clone (
renegade.bin
) - Deuce's Lightbar Shell (
lbshell.js
) - Simulated MS-DOS (
sdos.bin
)
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.