jstm login is the whole setup — it already knows how to reach JoyStream.
This page covers what it stores and the few knobs that exist.
Your session
jstm login writes session.json into ~/.joystream/, with 0600 permissions. It holds your access token, refresh token, and expiry.
The CLI refreshes the token proactively when it is within 60 seconds of expiring. If the refresh fails, it clears the session and asks you to sign in again.
There is no config file
The CLI ships with everything it needs to reach JoyStream and sign you in. It writessession.json when you log in, and nothing else.
jstm init exists but is hidden, because it scaffolds a config.toml holding credentials that only self-hosters can supply. If you installed the published CLI, you never need it — and running it will not improve anything.jstm admin, which requires a service_role_key. That’s a self-hosting operation.
Environment variables
The CLI also honors the usual terminal conventions:
NO_COLOR, COLUMNS, and TERM.
In CI
Set a token and skip interactive login entirely:JOYSTREAM_TOKEN takes precedence over the session file, so nothing needs to be logged in on the runner.
Separate profiles
JOYSTREAM_CONFIG_DIR gives you an independent session, which is useful if you hold more than one account.
~/.joystream/.
Installer variables
JSTM_VERSION and JSTM_INSTALL_DIR affect installation, not the CLI itself. See Install the CLI.
See also
- Authentication — every sign-in mode.
- Common errors