Skip to content

CLI

The beeps CLI lets you manage relays, schedules, alerts, and integrations directly from the command line — or define your entire on-call setup as code.

Terminal window
npm install -g @beepsdev/cli

Set your API key as an environment variable:

Terminal window
export BEEPS_API_KEY="bk_your_api_key_here"

Or use a JSON config file:

{
"apiKey": "bk_your_api_key_here",
"baseUrl": "https://api.beeps.dev/v0"
}
Terminal window
beeps relay list --config ./beeps.cli.json
# or set once via environment variable
export BEEPS_CLI_CONFIG="./beeps.cli.json"

Resolution order (highest priority first): --api-key flag > config file > BEEPS_API_KEY environment variable.

These flags are available on every command:

FlagDescription
--api-key <key>API key for authentication
--base-url <url>Custom API endpoint
--config <file>Path to a JSON config file
--timeout <ms>Request timeout in milliseconds (default: 10000)
--retries <count>Number of retry attempts (default: 2)
--jsonOutput machine-readable JSON
--helpShow usage info
Terminal window
beeps schedule on-call --schedule-id sch_abc123
Terminal window
beeps alert list --active
Terminal window
beeps alert on-it --alert-id alt_abc123
Terminal window
beeps alert resolve --alert-id alt_abc123
Terminal window
beeps relay list
Terminal window
beeps relay simulate --relay-id rly_abc123 --simulate-at 2025-03-01T00:00:00Z
Terminal window
beeps relay export -o beeps.config.ts # export current setup
beeps relay plan -f beeps.config.ts # preview changes
beeps relay apply -f beeps.config.ts # apply changes
beeps
├── alert
│ ├── list [--active] [--resolved]
│ ├── get --alert-id <id>
│ ├── on-it --alert-id <id> [--user-id <id>]
│ ├── assign --alert-id <id> --user-id <id>
│ ├── resolve --alert-id <id>
│ ├── responders --alert-id <id>
│ ├── agents --alert-id <id>
│ └── fix-context --alert-id <id>
├── relay
│ ├── list
│ ├── create --name <name> [--external-key <key>]
│ ├── lint --relay-id <id> [--coverage-days <n>]
│ ├── simulate --relay-id <id> --simulate-at <iso>
│ ├── plan -f <config>
│ ├── apply -f <config> [--prune] [--dry-run]
│ ├── export -o <file>
│ └── rule
│ ├── list --relay-id <id>
│ ├── get --relay-id <id> --rule-id <id>
│ ├── create --relay-id <id> --name <name> --rule-type <type>
│ └── delete --relay-id <id> --rule-id <id>
├── schedule
│ ├── list
│ ├── create --name <name> --relay-id <id> --type <type> ...
│ ├── on-call --schedule-id <id>
│ ├── assignments --schedule-id <id> [--count <n>]
│ ├── add-member --schedule-id <id> (--email <email> | --user-id <id>)
│ ├── remove-member --schedule-id <id> --user-id <id>
│ └── override
│ ├── create --schedule-id <id> --user-id <id> --start-at <iso> --end-at <iso>
│ ├── list --schedule-id <id>
│ ├── update --schedule-id <id> --override-id <id>
│ └── cancel --schedule-id <id> --override-id <id>
├── integration
│ ├── list
│ ├── get --integration-id <id>
│ ├── create --provider <provider> --name <name> --api-key-env <var>
│ ├── update --integration-id <id>
│ └── delete --integration-id <id>
├── webhook
│ └── list --relay-id <id>
├── agent-job
│ ├── list
│ ├── get --job-id <id>
│ └── status --job-id <id>
├── member
│ └── list
└── config
└── lint -f <config>

All commands support --json for machine-readable output and --help for usage info.