# Shell ## Starting and Exiting a Session Start a {term}`local mode` {term}`exporter` {term}`session`: ```console $ jmp shell --exporter example-local ``` Start a {term}`distributed mode` {term}`exporter` {term}`session`: ```console $ jmp shell --client hello --selector example.com/board=foo ``` When finished, simply exit the shell: ```console $ exit ``` ## Interact with the Exporter Shell The {term}`exporter shell` provides access to driver CLI interfaces through the magic {term}`j` command: ```console $ jmp shell # Use appropriate --exporter or --client parameters $ j Usage: j [OPTIONS] COMMAND [ARGS]... Generic composite device Options: --help Show this message and exit. Commands: power Generic power storage Generic storage mux $ j power on ok $ j power off ok $ exit ``` When you run the `j` command in the {term}`exporter shell`, you're accessing the CLI interfaces exposed by the drivers configured in your {term}`exporter`. In this example: - `j power` - Would access the power interface from the MockPower driver - `j storage` - Would access the storage interface from the MockStorageMux driver Each driver can expose different commands through this interface, making it easy to interact with the mock hardware. The command structure follows `j `, where available actions depend on the specific driver.