Upsell CLI 

Command-line access to your Upsell dashboard. Inspect orders, switch between stores, and script against your data without leaving the terminal.

$ curl -fsSL https://cli.upsell.is/install.sh | sh

Requires Node.js 22 or newer and an Upsell account. The installer verifies a SHA-256 checksum before installing anything.

Quick start

upsell auth login              # opens your browser to log in
upsell store list              # the stores you can access
upsell store switch <name>     # pick the store to work on
upsell orders list             # recent orders for that store

Commands

upsell auth

Command Description
login Log in through the browser. --token <jwt> to pass one directly
logout Clear stored credentials
status Show who you are logged in as

upsell store

Command Description
list List every store your account can access
switch <name> Set the active store
current Show the active store
branches List branches for the active store

upsell orders

Command Description
list Recent orders for the active store, defaulting to the last 30 days
get <id> Show a single order by id

orders list takes --limit <1-100> (default 25), --page <n>, --branch <id>, and --search <query> matching order number, customer, or phone.

upsell log

The local action journal: every create, read, update, and delete this CLI has made from this machine. Filter with --op, --resource, --store, --failed, or --limit. --path prints the journal location.

Global options

Option Description
--format json Machine-readable output instead of a table
--store <name> Override the active store for one invocation
--help Usage for any command or subcommand
--version Print the installed version

Both global options work in any position, before or after the subcommand.

Scripting

Reads render a table by default and structured JSON with --format json, so they compose with jq:

upsell orders list --limit 100 --format json \
  | jq '.data[] | select(.status == "pending") | .orderNumber'

Exit codes are stable, so failures are easy to branch on:

Code Meaning
0 Success
1 Generic failure
2 Not logged in
3 Permission denied
4 Not found

Configuration

Credentials and the active store live in ~/.upsell-cli/config.json, in a directory created with mode 0700.

Variable Effect
UPSELL_STORE Default active store, overridden by --store
UPSELL_DASHBOARD_URL Dashboard used for browser login, default https://app.upsell.is
UPSELL_NO_JOURNAL Set to 1 to disable the local action journal

Store precedence: --store beats UPSELL_STORE, which beats the saved config.

Updating and removing

Re-run the installer to update in place:

curl -fsSL https://cli.upsell.is/install.sh | sh

To remove it, delete the install directory and drop the PATH line you added:

rm -rf ~/.upsell