Skip to main content
The CLI works with no configuration. Installing it and running 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.
That file is all most people ever need.

There is no config file

The CLI ships with everything it needs to reach JoyStream and sign you in. It writes session.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.
The one case that does need a config file is 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.
Without it, the CLI uses ~/.joystream/.

Installer variables

JSTM_VERSION and JSTM_INSTALL_DIR affect installation, not the CLI itself. See Install the CLI.

See also