CLI
Browse and manage your Dextel account from the terminal. Human-readable tables when you're exploring, clean JSON when you're scripting.
Requires Node 18+.
Authentication
The CLI resolves your key from three places, highest precedence first: the --api-key flag, the DEXTEL_API_KEY environment variable, then ~/.dextel/config.json.
The stored key is protected
dextel login writes the config file readable only by you (mode 0600). If it ever becomes group- or world-readable, the CLI warns on every run — a key sitting in a shared dotfile is a credential leak.In CI, prefer the environment variable:
Commands
Resources — agents, contacts, calendars, appointments, knowledge-bases, custom-tools, phone-numbers, number-pools, calls, workflows, agency.
Actions — list, get, create, update, delete. Read-only resources reject writes locally, without a round trip.
Examples
Piping and scripting
Data goes to stdout; status, prompts and errors go to stderr. So piping is always safe — no progress line can corrupt your JSON.
--json is implied whenever stdout is not a terminal, so you rarely need it in a pipeline. Force the human table with --table.
Exit codes
0 success · 1 usage or API error · 2 not authenticated · 3 not found · 4 rate limited · 5 could not reach the API.
Flags
--json raw JSON · --table force the table · --all follow pagination to the end · --limit <n> page size (1–100) · --starting-after <id> cursor · --data '<json>' request body · --file <path> body from a file (- for stdin) · --yes skip the delete confirmation · --api-key <key> · --base-url <url> · -h · -v.
Set NO_COLOR=1 to disable colour; it is also disabled automatically when output is piped.
Deletes in scripts
delete asks for confirmation unless you pass --yes. In a non-interactive shell there is no prompt and no confirmation is required — be deliberate about what you automate.