Skip to content

shellroom start

The shellroom start command will start a new training session.

Example usage

sh
export ZM_AUTHKEY=[MY-AUTH-KEY]
shellroom start --users-csv my-users.csv --subdomain my-cool-course

Flags

FlagDescription
--users-csvFile containing the users and passwords in CSV or TSV format. Depending on --login, passwords might be required for authentication
--subdomainRequest a specific subdomain for the web terminal
--loginHow web terminal users will login.
--demo-modeDemo mode: provides fake users and roles and sets --login virtual.
--allow-any-participantAllows any user to join the session as participant. Defaults to false if the --users-csv file is provided, true otherwise.
--allow-any-trainerAllows any user to join the session as trainer. Defaults to false if the --users-csv file is provided, true otherwise.
--file-server-enabledEnables the file server: special links (as created with shellroom link) open local files in the browser for anyone. Default: true.
--live-reload-imagesEnables live reloading of images opened in the browser. Requires the file server. Default: true.
--themeTheme for the web terminal

--users-csv

The users file expected by --users-csv is a simple text file specifying your users, roles and passwords. See users file for a description of the file format.

Usernames & roles: shellroom start reads those and shows these expected users in the activity pane. When users join a training session (via shellroom join), they will be assigned the role accordingly.

Password: shellroom start will read and use passwords only in the virtual login mode. It can be left empty otherwise.

--subdomain

This flag requests a specific subdomain for the web terminal. It makes the training session accessible at a predictable and human-friendly URL, e.g. https://my-course.lterm.eu.

If omitted, or the requested subdomain is not permitted, a random subdomain will be assigned.

--login

Controls how users authenticate when accessing the web terminal. Two modes are available:

  • [local binary] (default) - a command (default: /bin/login) is executed as soon as the user opens the web terminal link.
  • virtual - users type credentials into a browser-based login form. These are checked against the --users-csv file. On success, a new shellroom join instance with the requested user/role is created, though in reality it runs under the current host user.

Choose virtual if you want all users running under the current host user combined with per-user access control. Otherwise, use the default for the standard setup.

--demo-mode

Enables demo mode.

  • Provides a set of fake users and roles.
  • Forces --login virtual.
  • Ignores the options --users-csv and --login.

This is useful for quickly showcasing the web terminal without setting up real user accounts or CSV files.

--allow-any-participant

Determines whether anyone running shellroom join may join as a participant, regardless of whether they are listed in --users-csv.

  • Defaults to false if a --users-csv file is provided.
  • Defaults to true otherwise.

This option is convenient for open workshops where strict user control is not required.

--allow-any-trainer

Determines whether anyone running shellroom join --as-trainer may join as a trainer.

  • Defaults to false if a --users-csv file is provided.
  • Defaults to true otherwise.

Trainers have elevated capabilities (e.g. helping participants).

--file-server-enabled

Enables the file server, allowing participants to open local files in their browsers by middle-clicking (mouse wheel) on special links created with shellroom link.

  • Default: true
  • Set to false to prevent file access via the web terminal.

This feature is useful in exercises that involve browsing tool outputs such as images or HTML files.

Security note: File transfers are not end-to-end encrypted and are not gated behind a login.

--live-reload-images

Enables live reloading of images opened in the browser. A common use case is refining images such as plots created with R, Matplotlib, or similar tools.

To achieve this, ShellRoom creates a file watcher for opened images and triggers a page reload when the files are modified. This option only works when the file server is enabled.

  • Default: true
  • Set to false to disable live image reloading.

--theme

Sets the theme for the web terminal UI.

Currently supported themes:

  • default
  • default-light
  • ubuntu
  • github-dark
  • github-light
  • selenized-dark
  • selenized-light