Targeting an account or organization. To use a different saved account for
one invocation without changing the active account, pass the global
--account <email|prefix> flag before the subcommand — for example,
alertee --account work@ checks list. Likewise, --org <id> overrides that
account’s linked organization for one invocation. Both flags work with every
command and do not change saved defaults. The backend still checks your access.alertee login
Authenticate through your browser.
~/.config/alertee/config.json. Use --no-browser to print the URL instead of opening one (handy over SSH). See Authentication for the full flow and CI usage.
alertee logout
Log out of an account — the active one by default, or a named one.
alertee whoami
Show current authentication status.
alertee update
Update the CLI to the latest published version (checks npm, then installs).
alertee auth
Manage multiple accounts. alertee login and alertee logout are aliases for
auth login / auth logout, so you only need this group when juggling more
than one account. Each account keeps its own token and linked organization.
ALERTEE_ACCOUNT=<email>.
alertee link
Link to an organization. Required before running any check commands.
alertee plan
Show the linked org’s plan, price, next invoice, estimated current-period spend,
and usage. Handy before creating checks to confirm there’s headroom.
monthly_price_cents and
estimated_spend_cents) with currency, plus next_invoice_at and
billing_period_end timestamps.
alertee org create [name]
Create a new organization and link to it (so the next connections create /
checks create target it). You become the organization’s owner.
--slug <slug> (custom URL-safe slug; auto-generated from the name if
omitted), --no-link (create without switching your linked organization).
alertee org list
List the organizations you belong to. The linked one is marked with *.
alertee checks list
List all checks in the linked organization.
--compact trims the
table to name, status, and active/paused/muted state.
Add --format json for machine-readable output. Its fields use plain values
(enabled: true, not Enabled.Bool), and request credentials are always
redacted. Add --compact to omit configuration, descriptions, and runbook text:
alertee checks get <id>
Show a single check’s detail (status, interval, type, connection, query). JSON
uses the same flattened fields as checks list; request credentials are
redacted in both table and JSON output.
alertee checks pause [checks...]
Pause one or more checks so they stop running. Names and IDs can be mixed, and
--all pauses the entire organization in one batch. Pausing does not change a
check’s alert mute setting.
resume command to start them again:
alertee checks history <id>
Show a check’s recent run history. Defaults to the last 24 hours.
alertee checks changelog <id>
Show a check’s change history — config edits, Alertee AI reviews, and schedule/calendar/snooze changes, newest first. This is the what-changed log (distinct from checks history, which is run/status over time).
alertee checks run <id>
Run a check immediately and print the result — handy for testing without
waiting for the schedule.
alertee checks preview-api
Probe a JSON API and list its extractable gjson paths, for authoring an
api_metric check without curling first. Saves nothing.
--url, --http-method, --header "Key: Value" (repeatable),
--query-param "key=value" (repeatable, auto-encoded), --request-body,
--value-path (to confirm what a specific path extracts). See
API metric checks.
alertee checks open <id>
Open a check’s page in your browser.
alertee connections list
List the database connections in the linked organization (use the ID when
creating checks).
alertee connections create
Create a database connection in the linked organization. Pass flags, or omit
them to be prompted (the URI is hidden-prompted). The connection URI is sent to
the API over HTTPS and encrypted server-side — the CLI never stores it. The
backend tests the connection before saving, so a bad URI or unreachable host
fails here rather than saving a broken connection.
--name, --type postgres|clickhouse, --uri <connection-string>.
alertee connections update <connection>
Update an existing connection — rotate its credentials (--uri) or rename
it. Re-tested before saving. The URI is encrypted server-side and never stored
by the CLI.
--uri <connection-string> (new URI), --name (rename),
--type postgres|clickhouse.
alertee connections test <connection>
Test an existing connection by name or ID. Reports detected permissions.
alertee connections delete <connection>
Delete a connection by name or ID. Prompts for confirmation first.
alertee checks create
Create a new check — a SQL check (single-value or grid), a website/API check, an
API metric check, a heartbeat, or a
push check. Pass flags for
non-interactive use (CI, or an AI assistant driving
the CLI), or omit them to be prompted for each field at a terminal. The condition
describes the healthy state and the check alerts when it’s violated — see
Conditions.
--name, --type <sql|http|api_metric|heartbeat|push>, --interval, --alert-level,
--alert-message <text> (custom alert/incident text replacing the auto-generated
message — supports {check_name}, {value}, {threshold}; see custom alert
messages),
--alert-group <name|id> (route alerts to a specific group), --calendar <name>
(follow a calendar — NYSE, LSE, TSX, XETRA, EURONEXT, UK — quiet on
its holidays/weekends), --description <text> (short note on what the check
covers/why — also fed to Alertee’s AI incident advisory as
domain context), --documentation <text> (longer-form runbook/notes),
--justification <text> (why the check exists), --mute (create muted — runs but sends no alerts),
--grace <count> / --grace-type / --grace-window (tolerate failures before
alerting — see grace periods), --exclude-query /
--include-rows / --max-rows <n> (control what webhook alerts
send — the SQL query is included by
default, raw rows are not).
- SQL (
--type sql, default):--connection <name|id>,--query; single-value/per-cell--condition(greater_than,less_than,greater_or_equal,less_or_equal,equals,not_equals,between,not_between,contains,regex,timestamp_age,is_null,is_not_null,exists) with its value flag--threshold,--match-value, or--min/--max; escalation levels with repeatable--extra-threshold "comparison:value:level"(e.g.--extra-threshold "less_than:100000:critical"— worst violated level wins); grid--grid,--evaluation-type,--severity,--label-query. The check is single-value unless--gridor--evaluation-typeis given. - Website/API (
--type http):--url,--http-method,--expected-status,--timeout,--max-response-time,--body-contains,--ssl-expiry-days. - API metric (
--type api_metric):--url,--value-path(gjson path to the metric in the JSON response),--header "Key: Value"(repeatable — auth tokens),--query-param "key=value"(repeatable, auto-encoded — e.g.--query-param "q=SELECT count() AS value FROM events"for Tinybird/HTTP-SQL),--http-method,--request-body,--expected-status,--timeout; plus the same condition flags as SQL (--condition+--threshold, or--grid/--evaluation-typewhen the path yields{name,value}rows). See API metric checks. Usealertee checks preview-api(below) to discover value paths before saving. - Heartbeat (
--type heartbeat):--expected-interval(minutes),--heartbeat-grace,--last-ping-status. - Push (
--type push):--staleness-mins(the dead-man window — alert if nothing is pushed within this many minutes, default 60), plus the same condition flags as SQL (--condition+--threshold, or--grid/--evaluation-typefor a grid push). Creating one prints the ingest URL your job POSTs to — see push checks andalertee pushbelow.
alertee checks update <check>
Update a check’s common fields by name or ID. This is a partial update — only
the flags you pass change. With no flags at a terminal it drops into an
interactive editor for the same fields.
--name, --query, --staleness-mins (push checks: retune the dead-man
window — the existing ingest URL keeps working), --label-query, --interval, --alert-level,
--alert-message, --description, --documentation, --justification
(set the author notes — --description is also fed to Alertee’s AI incident
advisory; pass "" to clear any of them),
--condition, --threshold, --match-value, --min,
--max, --evaluation-type, --severity, --extra-threshold, --pause,
--resume, --mute, --unmute, --grace <count>, --grace-type,
--grace-window, --managed-by, --calendar, --clear-calendar, --tz,
--include-query / --exclude-query, --include-rows / --exclude-rows,
--max-rows <n> (control what webhook alerts
send).
-
The condition flags (
--condition,--threshold,--match-value,--min/--max,--evaluation-type,--severity,--extra-threshold) edit the check’s condition in place — they’re the same flags aschecks createand only the ones you pass change; the rest of the condition (including escalation tiers) is preserved. See conditions. -
--mutesilences a check’s notifications without stopping it — it keeps running and updating its status, just doesn’t alert. Stays muted until--unmute. Good for a noisy, not-yet-tuned check. (Contrast with--pause, which stops the check running, and snooze, which skips runs for a short window.) -
--grace <count>tolerates that many failures before alerting (for spiky metrics);--grace-type within_window+--grace-window <minutes>counts failures in a rolling window instead of consecutively.--grace 0turns it off. See grace periods. -
--managed-by user|alerteeswitches who maintains the check.alerteehands it to Alertee, which re-authors and re-reviews it on a cadence. -
--calendarmakes the check follow a calendar (NYSE= US market holidays,UK= UK bank holidays, plusLSE,TSX,XETRA,EURONEXT) so it stays quiet on that calendar’s closed days — weekends and its holidays. It’s day-level only: time-of-day stays with the check’sschedule, and the two compose.
update_check tool.
alertee push <token> [values...]
Push a number to a push check’s ingest URL. This is the one
command that needs no login — the token in the URL is the credential, which
is what lets a cron inside a private network use it.
healthy, alerting, or error) is the real result — not a queued
acknowledgement.
Flags: --metadata <json> (optional JSON attached to the pushed batch).
alertee checks delete <check>
Delete a check by name or ID. Prompts for confirmation first.
alertee checks snooze <check>
Silence a check for the rest of today (it’s skipped until then). Auto-expires, or
end it early with checks unsnooze. See Active schedule & snooze.
--until <iso-ts> (silence until a timestamp instead of end of day),
--tz <zone> (local day boundary, default America/New_York), --reason.
alertee checks unsnooze <check>
End a check’s active snooze now, so its alerts resume immediately instead of
waiting for the snooze to expire. No-op if the check isn’t snoozed; leaves
recurring quiet windows and calendars untouched.
alertee checks history <id> (a SNOOZES section).
alertee checks schedule <check>
Set a check’s custom schedule — the recurring hours/days it’s expected to be
active. Outside it the check is skipped, so it won’t alert. This handles
time-of-day; to also stay quiet on a calendar’s holidays (and weekends), add
--calendar — the two compose. See Active schedule & snooze.
--before <hh:mm>, --after <hh:mm>, --weekdays (quiet all weekend),
--tz <zone>, --reason, --clear.
alertee checks suggest-schedule <check>
Infer an active schedule from the check’s run history — Alertee looks at when the
check normally has data and proposes hours/days. A suggestion only; pass
--apply to set it as the check’s custom schedule. See Active schedule &
snooze.
--days <n> (history window, default 30), --tz <zone>, --apply.
alertee alert-groups
Manage alert groups and their recipients. An alert group is a named set of
recipients; a check routes its alerts to one group (the org default if none is
set). See Alert groups for the model.
alertee email-groups
Manage email groups — reusable lists of email recipients (external addresses
or organization members). Attach one to an alert group with
alert-groups add-email-group.
alertee inbox
View and triage inbox items (incidents). See Inbox.
alertee receivers
Manage inbound webhook receivers — external tools POST to a receiver’s URL to
open an inbox incident. create prints the URL; copy it into the other tool.
create: --name, --severity info|warning|error|critical,
--title-template, --description-template, --alert-group <name|id...>,
--auto-resolve. POST a JSON body like
{"title":"…","severity":"critical","dedup_key":"…"} to the printed URL.
alertee mcp
Start the MCP server for use with agents like Claude Code, or any MCP-compatible AI tool.
.mcp.json config — you don’t need to run it directly. See MCP setup for details.