darwin-arm64
today, more coming) and authentication.
The parity promise
Everything the API does, the CLI does. Every public API operation that accepts an API key maps to exactly onekorve command — this is enforced
by a parity test in the CLI’s own test suite, so a new platform capability
cannot ship without its command. The layout is korve <noun> <verb>
(korve domains add, korve database rotate) plus a few top-level verbs
(korve deploy, korve logs, korve login).
The only exceptions are session-only operations (key management, billing
mutations, org membership) — the CLI ships those commands anyway so the
failure mode is a helpful pointer to the dashboard rather than a mystery.
Global flags
--json is the agent/scripting mode: stdout is the API payload, status
chatter goes to stderr. Shown-once secrets print bare on stdout so they
pipe cleanly.
Configuration precedence
Explicit beats ambient, everywhere:- Command-line flags (
--project,--api-url,--api-key) - Environment (
KORVE_API_KEY,KORVE_ORG,KORVE_PROJECT,KORVE_API_URL) - Local link file
.korve.toml(project only — written bykorve link) ~/.config/korve/config.toml(written bykorve login,0600)- Built-in defaults (
https://api.korve.dev)
--project → $KORVE_PROJECT → .korve.toml, and accept either a slug
or a UUID.
Exit codes
API errors print as
error (CODE): message on stderr, preserving the
error envelope’s machine-readable code.
Confirmations
Destructive commands (projects delete, database delete,
previews remove, manifest apply) prompt interactively; pass --yes to
skip in scripts. korve projects delete asks you to type the slug.
Next
- All commands — every command, flag, and example.