Install the CLI
Install up0, log in through the browser, and confirm who you're authenticated as.
Install the CLI
The up0 CLI is a Python package. It isn't published to a package index yet,
so install it from the repository:
git clone https://github.com/up0io/up0_io
cd up0_io/cli
pip install -e .Point it at your organization
The CLI has no built-in default for which upzero instance to talk to. Set the API URL and the Zitadel issuer once, either as environment variables or as flags on your first login:
export UP0_API_URL=<your API URL>
export UP0_ZITADEL_ISSUER=<your Zitadel issuer URL>If you work against more than one upzero instance, give each one a named
profile with --profile:
up0 --profile prod auth loginProfiles are stored in ~/.up0/config.yaml, one section per profile, and
--profile (or the UP0_PROFILE environment variable) selects which one a
command uses.
Log in
up0 auth loginThis opens your browser to sign in through Zitadel (OAuth Authorization Code plus PKCE, no client secret and no password handled by the CLI itself). Real output from a successful login:
✓ Logged in as docs@up0.local.The access and refresh tokens are written to ~/.up0/config.yaml and
refreshed automatically; there's no separate step to keep the session alive.
Confirm who you are
up0 whoamiUser: docs@up0.local
Profile: kind (from UP0_PROFILE)
Org: upzero docs (upzero-docs)
1f1317e4-2675-4f15-a298-d09346c9cad8
API: https://api.up0.kind
Issuer: https://auth.up0.kind
Token: valid (expires 14:04 UTC)up0 whoami --output json prints the same information as JSON, minus the
tokens themselves, so it's safe to use in a script without leaking a bearer
token into a log.
Why this profile says kind
The transcripts and screenshots in this section were captured against a
local kind cluster (profile kind, api.up0.kind), not staging, because
staging's profile runs no monitoring plane.
What's next
Send your first signal from your app, or jump straight to creating your first monitor.