Skip to content

The CLI

@quorumcal/cli puts every API operation behind a command, generated from the API’s own catalog, so it is always in step with the API. The full list is the CLI reference.

Terminal window
npm install --global @quorumcal/cli
quorum --help

Requires Node 20 or later.

Terminal window
quorum login

This is the OAuth device flow. The CLI prints a short code and opens your browser; check the code, approve the scopes, and the CLI keeps a login on this machine. It refreshes itself and stops working when you revoke it in Settings → Developer.

By default it asks for links, bookings, polls and availability, read and write. Ask for more or less:

Terminal window
quorum login --admin # add workspace:admin (members, teams, invites, webhooks)
quorum login --contacts # add your address book
quorum login --scope links:read --scope polls:read

The login is stored in credentials.json under $QUORUM_CONFIG_DIR, else $XDG_CONFIG_HOME/quorum or ~/.config/quorum (%APPDATA%\quorum on Windows), readable by you only. There is one entry per API address, so a local login never reaches production. quorum logout revokes it.

Set QUORUM_TOKEN to a personal token; it wins over a stored login.

Terminal window
export QUORUM_TOKEN=qrm_pat_...
quorum --json links list | jq -r '.data[].slug'
Terminal window
quorum whoami
quorum orgs list
quorum teams mine
quorum team links list --org acme --team sales
quorum polls create --title "Retro" --duration-minutes 60 --timezone UTC \
--options 2026-11-05T15:00:00Z,2026-11-06T15:00:00Z
quorum team bookings list --org acme --team sales --when upcoming --all
  • Path values (<handle>, <linkId>, …) are positional or flags. --org and --team are aliases for --handle and --team-path, and default to QUORUM_ORG and QUORUM_TEAM.
  • Other arguments are flags named after the field in kebab-case; a list is a repeated flag or comma-separated. Nested bodies go in --body as JSON, @file.json, or - for stdin.
  • Lists print as tables; one object prints as key value lines; --json prints the API’s JSON. --all follows every page.
  • With --json, failures are {"error":{"code","message","status"}} on stderr.
  • Exit codes: 0 success, 1 the API or login refused, 2 usage.
Setting Flag Variable
API address --base-url QUORUM_API_URL (default https://api.quorumcal.com)
API version --api-version QUORUM_VERSION
Config directory QUORUM_CONFIG_DIR