====== Command Shells ======

Configure the list of [[server:Terminal]] Server command shells available to your BBS users using the [[util:SCFG]]->Command Shells menu.

  ╔═══════════════════════════════════════════╗
  ║               Command Shells              ║
  ╠═══════════════════════════════════════════╣
  ║ │Synchronet (Classic)                     ║
  ║ │Synchronet (Novice)                      ║
  ║ │WWIV Clone                               ║
  ║ │PCBoard Clone                            ║
  ║ │Wildcat Clone                            ║
  ║ │MajorBBS Clone                           ║
  ║ │Renegade Clone                           ║
  ║ │Oblivion/2 Clone                         ║
  ║ │Deuce's Lightbar Shell                   ║
  ║ │                                         ║
  ╚═══════════════════════════════════════════╝

 A command shell is a programmed command and menu structure that you or  
 your users can use to navigate the BBS Terminal Server.  For each       
 command shell, there must be an associated ''.js'' or ''.bin'' file in your     
 ''[[dir:exec]]'' or ''[[dir:mods]]'' directory for Synchronet to execute upon user logon.       
                                                                         
 Command shells may be [[custom:JavaScript]] modules (''.js'' files), created with any text editor. There is a JavaScript load library, ''shell_lib.js'' to help make writing command shells in JavaScript more quickly/easily. See ''exec/default.js'' for an example command shell that uses ''shell_lib.js''.
                                                                         
 Legacy command shells may be created or modified by using the [[util:Baja]] compiler         
 to turn Baja source code (''.src'') files into binary files (''.bin'') for      
 Synchronet to interpret.  See the example ''.src'' files in the ''exec''
 directory and the documentation for the Baja compiler for more details. 

===== Command Shell =====

  ╔══════════════════════════════════════════════════════════╗
  ║                   Synchronet (Classic)                   ║
  ╠══════════════════════════════════════════════════════════╣
  ║ │Name                       Synchronet (Classic)         ║
  ║ │Internal Code              DEFAULT                      ║
  ║ │Access Requirements                                     ║
  ╚══════════════════════════════════════════════════════════╝

^ Option Name        ^ Description ^
| Name                | Display name shown to users when they choose a command shell. |
| Internal Code       | Up to 8 valid filename characters. The shell file is loaded as ''<code>.js'' (or ''<code>.bin'' for legacy Baja shells) from the user's [[dir:mods]] or [[dir:exec]] directory at login. |
| Access Requirements | An [[access:requirements|ARS]] expression — only users matching the requirements may select or be auto-assigned this shell. |

When a user has multiple shells available, they can switch between them with the '';SHELL'' [[module:str_cmds|string command]]. The default shell for new users is configured under [[#new_user_values|System → New User Values → Command Shell]]. //(See [[config:system#new_user_values|System Configuration]].)//

===== See Also =====
  * [[:config:|config index]]
  * [[util:baja]] — Baja compiler for legacy ''.bin'' shells
  * [[custom:javascript]]
  * [[custom:command_shell|Custom command shell development]]
  * [[module:str_cmds]]

{{tag>configuration command_shell scfg}}
