Automations

Manage automations (rules) that fire actions when metrics match conditions.

Manage automations (rules) that fire actions when metrics match conditions.

Commands

CommandDescription
automations createCreate an automation.
automations deleteDelete an automation.
automations getGet an automation by ID.
automations listList automations.
automations updateUpdate an automation.

automations create

Create an automation.

Create an automation (rule) in a project. An automation watches behavior/latency/cost metrics and fires actions when its conditions match. Requires the developer role.

judgment automations create [OPTIONS] <PROJECT_ID> <NAME>

Arguments

NameRequired
PROJECT_IDyes
NAMEyes

Options

FlagTypeRequiredDescription
--descriptiontextnoHuman-readable description shown in the UI.
--conditionstextyesJSON array of rule conditions. Each condition references a named metric/scorer on the project and a comparison. Items are ANDed or ORed together based on combine_type (all vs any). Condition shape: Common scorer_type values: - behavior — Judge-scored behavior (name = behavior name, e.g. "Relevance") - static — Built-in metrics like "duration" (ms) or "llm_cost" (USD) - prompt/custom — Prompt or custom scorer by name - span_attribute — Arbitrary span attribute key (name = attribute key) - error — Span error condition
--combine-typeall, anyyes
--actionstextnoJSON object describing what happens when the automation fires. All top-level keys are optional — include only the actions you want configured. Shape: Slack notifications are configured per-organization in the Judgment UI; pass "slack" in communication_methods to use them.
--cooldown-periodnumbernoCooldown duration as a plain number, paired with cooldown_period_unit. Example: 15 with unit "minutes".
--cooldown-period-unitseconds, minutes, hours, daysno
--trigger-frequency-countnumbernoMaximum triggers allowed within the trigger-frequency window.
--trigger-frequency-periodnumbernoWindow length for the trigger-frequency limit, paired with trigger_frequency_period_unit.
--trigger-frequency-period-unitseconds, minutes, hours, daysno

--conditions shape

{
  "metric": {
    "scorer_type": "behavior" | "judge" | "prompt" | "custom" | "static" | "span_attribute" | "error",
    "name": "<scorer or metric name>",
    "threshold": <number | string | null>?
  },
  "comparison": "lt" | "gt" | "eq" | "gte" | "lte" | "fails" | "succeeds" | "chooses" | "detected" | "equals" | "contains" | "exists"
}

--actions shape

{
  "notification": {
    "enabled": <bool>?,
    "communication_methods": ["email" | "slack" | "pagerduty"],
    "email_addresses": ["<addr>", ...]?,
    "pagerduty_config": {"routing_key":"<key>","severity":"critical"|"error"|"warning"|"info"}?
  }?,
  "dataset_addition": {
    "enabled": <bool>?,
    "dataset_name": "<dataset>",
    "metadata_fields": <any>?
  }?,
  "behavior_evaluation": {
    "enabled": <bool>?,
    "behavior_judge_names": ["<judge_name>", ...]
  }?
}

automations delete

Delete an automation.

Delete an automation. Requires the admin role.

judgment automations delete <PROJECT_ID> <RULE_ID>

Arguments

NameRequired
PROJECT_IDyes
RULE_IDyes

automations get

Get an automation by ID.

judgment automations get <PROJECT_ID> <RULE_ID>

Arguments

NameRequired
PROJECT_IDyes
RULE_IDyes

automations list

List automations.

judgment automations list <PROJECT_ID>

Arguments

NameRequired
PROJECT_IDyes

automations update

Update an automation.

Update an existing automation. All fields other than the IDs are optional — only supplied fields are applied. Use active: true/false to enable or disable without changing other fields. Requires the developer role.

judgment automations update [OPTIONS] <PROJECT_ID> <RULE_ID>

Arguments

NameRequired
PROJECT_IDyes
RULE_IDyes

Options

FlagTypeRequiredDescription
--nametextnoNew name for the automation.
--descriptiontextnoNew description for the automation.
--conditionstextnoJSON array of rule conditions. Each condition references a named metric/scorer on the project and a comparison. Items are ANDed or ORed together based on combine_type (all vs any). Condition shape: Common scorer_type values: - behavior — Judge-scored behavior (name = behavior name, e.g. "Relevance") - static — Built-in metrics like "duration" (ms) or "llm_cost" (USD) - prompt/custom — Prompt or custom scorer by name - span_attribute — Arbitrary span attribute key (name = attribute key) - error — Span error condition
--combine-typeall, anyno
--actionstextnoJSON object describing what happens when the automation fires. All top-level keys are optional — include only the actions you want configured. Shape: Slack notifications are configured per-organization in the Judgment UI; pass "slack" in communication_methods to use them.
--activebooleannoEnable (true) or disable (false) the automation without modifying other fields.
--cooldown-periodtextnoJSON 2-tuple [period, unit] describing the minimum wait between triggers. Omit to leave unchanged. Shape: [&lt;period:number&gt;, &lt;unit:"seconds"|"minutes"|"hours"|"days"&gt;] Example: [15, "minutes"] (at least 15 min between triggers)
--trigger-frequencytextnoJSON 3-tuple [count, period, unit] describing the rate-limit window. Omit to leave unchanged. Shape: [&lt;max_trigger_count:number&gt;, &lt;period:number&gt;, &lt;unit:"seconds"|"minutes"|"hours"|"days"&gt;] Example: [5, 1, "hours"] (max 5 triggers per 1 hour)

--conditions shape

{
  "metric": {
    "scorer_type": "behavior" | "judge" | "prompt" | "custom" | "static" | "span_attribute" | "error",
    "name": "<scorer or metric name>",
    "threshold": <number | string | null>?
  },
  "comparison": "lt" | "gt" | "eq" | "gte" | "lte" | "fails" | "succeeds" | "chooses" | "detected" | "equals" | "contains" | "exists"
}

--actions shape

{
  "notification": {
    "enabled": <bool>?,
    "communication_methods": ["email" | "slack" | "pagerduty"],
    "email_addresses": ["<addr>", ...]?,
    "pagerduty_config": {"routing_key":"<key>","severity":"critical"|"error"|"warning"|"info"}?
  }?,
  "dataset_addition": {
    "enabled": <bool>?,
    "dataset_name": "<dataset>",
    "metadata_fields": <any>?
  }?,
  "behavior_evaluation": {
    "enabled": <bool>?,
    "behavior_judge_names": ["<judge_name>", ...]
  }?
}