Auth precedence
zombiectl login decides which token to store, highest priority first:
--token <value>— login-only flagZOMBIE_TOKENenvironment variable- Piped stdin — token read from a pipe
- Browser device flow — interactive terminals only
- Interactive terminal —
ZOMBIE_TOKENwins over stored credentials, so an env var you just exported overrides a possibly-stale file. - Non-interactive (CI, cron, pipes) — stored credentials (written by
zombiectl loginto~/.config/zombiectl/credentials.json) win, falling back toZOMBIE_TOKENonly when no file exists.
--token is not accepted on commands other than login; use the ZOMBIE_TOKEN env var for one-off overrides in scripts.
API URL precedence
- CLI flag —
--api https://... - Environment variable —
ZOMBIE_API_URL .env.local— dev fallback file in the current directory- Built-in default —
https://api.usezombie.com
Environment variables
| Variable | Purpose | Default |
|---|---|---|
ZOMBIE_API_URL | API base URL | https://api.usezombie.com |
ZOMBIE_TOKEN | Auth token (for CI and scripts; user-bound, from zombiectl login) | (from zombiectl login) |
ZOMBIE_API_KEY | Service auth (machine-bound, from zombiectl agent add). Use this for service-to-service calls and external agents (LangGraph, CrewAI, Composio, your own code). | — |
ZOMBIE_STATE_DIR | Directory for local CLI state (credentials, telemetry, session). | ~/.config/zombiectl |
NO_COLOR | Set to 1 to disable color output. | — |
ZOMBIE_TELEMETRY_DISABLED | Set to 1 to opt out of anonymous analytics + tracing. | unset (telemetry on) |
DO_NOT_TRACK | Set to 1 to opt out via the industry-standard signal (consoledonottrack.com). | unset |
ZOMBIE_TELEMETRY_POSTHOG_KEY | Override the bundled PostHog project key (advanced; for self-hosted PostHog routing). | bundled phc_* key |
ZOMBIE_TELEMETRY_POSTHOG_HOST | Override the PostHog ingest host. | https://us.i.posthog.com |
ZOMBIE_TELEMETRY_DEBUG | Set to 1 to print span summaries to stderr for local development. | unset |
Telemetry
zombiectl collects anonymous usage data (command name, exit code, duration, OS, CLI version, detected AI agent if any) to improve the CLI. Identifiers are random UUIDs persisted in $ZOMBIE_STATE_DIR/telemetry.json (default ~/.config/zombiectl/telemetry.json); no source paths, file contents, prompts, or credentials are ever sent.
Telemetry is on by default. Opt out per-command, per-shell, or persistently:
denied regardless of the persisted value. DO_NOT_TRACK is the recommended signal if you opt out of multiple CLIs at once.
CI usage
In CI environments, setZOMBIE_TOKEN from your secrets manager and use --no-input for non-interactive operation: