--prod.
--prod is always explicit, per command. The one command that inherently targets production, kelviq promote, says so in its name, shows you the full diff of what production would change, and requires confirmation before writing (plus a typed production confirmation before any --prune archive). Promote needs both keys configured: sandbox to read, production to write.
Each environment has its own API host and its own keys — the CLI selects both together:
Always pair the key with its own environment’s host — a key from one environment doesn’t belong on the other’s host, and the CLI never mixes them.
Getting keys
The CLI authenticates with Server API Keys from the dashboard:- Sign in at app.kelviq.com.
- Go to Settings → API keys.
- Copy the Server API Key for the environment you want (sandbox and production have separate keys).
Key storage
kelviq login stores keys in a per-user config file:
- The file is created with owner-only permissions (
0600), inside a0700directory. XDG_CONFIG_HOMEis respected if set (the file lives at$XDG_CONFIG_HOME/kelviq/config.json).- Sandbox and production keys are stored as separate entries;
kelviq logoutremoves them individually (--prod) or together (--all).
Environment variables
Environment variables override the stored config file — useful for CI, containers, and one-off overrides without touching your stored keys:
A typical CI setup skips
kelviq login entirely:
Checking your setup
kelviq env prints the full picture without calling the API:
set means a key is configured (stored or via environment variable) — not that it’s valid. Kelviq has no key-introspection endpoint yet, so the CLI can’t verify a key or display your organization name; an invalid key surfaces on the first real API call, such as kelviq pull.