$ the-wire · showcase
Shopify CLI moves prompts to stderr, adds typed JSON output
By RepoJournal · Filed · About Shopify · Composed from the cited sources · methodology
The Shopify CLI is separating machine-readable results from human-facing terminal output: prompts move to stderr by default and auth commands gain typed JSON, so scripts stop parsing terminal text.
Write interactive prompts to stderr by default Shopify/cli
Shared prompts now default to stderr while explicit output stream overrides still work, and both stdin and stderr must be terminals, so redirecting stdout still allows prompts but redirecting stderr disables them. This is the behavioral change to watch: any script relying on prompt text in stdout will no longer find it there.
Add typed JSON output to concurrent process rendering Shopify/cli
Finite concurrent processes previously could write terminal text to stdout in JSON mode and corrupt the command result; they now emit JSON diagnostic and progress events on stderr, one diagnostic per line across pipe chunks, CRLF endings and split UTF-8 characters, with ANSI codes stripped. This is the shared prerequisite for the rest of the JSON work.
Add typed JSON output to auth login Shopify/cli
auth login accepts --json / -j and returns {"status":"success","alias":"Work account"} via the current session API, using a result schema in services/commands/auth/login/types.ts, with authentication and text output unchanged. Scripts can read the selected account alias directly instead of scraping terminal messages.
Add typed JSON output to auth logout Shopify/cli
auth logout gains --json / -j and returns {"status":"success"} after the logout completes, keeping the existing text output and session cleanup. The same typed-output pattern is landing across the auth commands.
Emit info and warning alerts as JSON diagnostics Shopify/cli
renderInfo and renderWarning used to print terminal banners even under --json, forcing callers to pick a different helper for JSON diagnostics; info and warning alerts now emit as JSON diagnostics directly.