jstm manages agents, workspaces, organizations, vaults, connections, catalogs, triggers, and runs from your terminal. It is a pure HTTP client for the JoyStream backend.
jstm and joystream are the same program. The prebuilt binary is named joystream; jstm is the short alias. These docs use jstm.Global flags
Running
jstm with no arguments prints help rather than doing anything.
JSON output
--json is a per-command flag, not a global one. Nearly every command that reads or writes data supports it.
--json because their output is interactive or a single line: connection test, connection add, connection remove, triggers delete, triggers webhook-url, org invite, org remove, profile emails subcommands, and jstm commands.
jstm ticket list and jstm ticket show also accept --out <file> to write the payload to a file.
stdout and stderr are separate
Results go to stdout. Errors, panels, prompts, and log records go to stderr. This means--json output on stdout is always a clean, pipeable stream:
--json mode, errors like credential_required print as pure JSON on stdout so a consumer can parse and branch on them, rather than as a formatted panel.
Exit codes
Three commands carry extra meaning in their exit code:
jstm agent conformexits with the conformance report’s own code.2here means the package couldn’t be read or a flag value was invalid.jstm agent readinessexits non-zero whenever there are blockers, so it works directly as a gate in a script.- A bare
jstm agent planis a usage error and exits2. Creation must be explicit — pass--newor a session id.
Error messages
The CLI distinguishes between failure modes rather than dumping status codes.
Set
JOYSTREAM_DEBUG=1 to log the full traceback to stderr.
Command groups
jstm commands always reflects the version you have installed.
Next
Configuration
Config paths, environment variables, and precedence.
Addressing
Handles, UUIDs, FQNs, and run addresses.