Judgment Labs Logo

judgment automations

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

The Judgment CLI is deprecated and no longer under active development. This reference is retained for existing users. See the CLI deprecation notice for supported alternatives.

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] [[[ORG_ID] PROJECT_ID] NAME...]

Arguments

NameRequired
[[ORG_ID] PROJECT_ID] NAMEno

Options

FlagTypeRequiredDescription
--organization-id, --org-idtextnoOrganization ID. Defaults to JUDGMENT_ORG_ID or saved context.
--organization, --orgtextnoOrganization name to resolve.
--project-idtextnoProject ID. Defaults to JUDGMENT_PROJECT_ID or saved context.
--projecttextnoProject name to resolve.
--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-periodtextnoJSON object describing the minimum wait between triggers. Omit to leave the cooldown unset; if provided, both value and unit are required. Shape: { "value": <number>, "unit": "seconds" | "minutes" | "hours" | "days" } Example: { "value": 15, "unit": "minutes" } (at least 15 min between triggers)
--trigger-frequencytextnoJSON object describing the rate-limit window. Omit to leave unset; if provided, all three fields are required. Shape: { "count": <number>, "period": <number>, "period_unit": "seconds" | "minutes" | "hours" | "days" } Example: { "count": 5, "period": 1, "period_unit": "hours" } (max 5 triggers per 1 hour)
-o, --outputyaml, jsonnoOutput format.

--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 [OPTIONS] [[[ORG_ID] PROJECT_ID] RULE_ID...]

Arguments

NameRequired
[[ORG_ID] PROJECT_ID] RULE_IDno

Options

FlagTypeRequiredDescription
--organization-id, --org-idtextnoOrganization ID. Defaults to JUDGMENT_ORG_ID or saved context.
--organization, --orgtextnoOrganization name to resolve.
--project-idtextnoProject ID. Defaults to JUDGMENT_PROJECT_ID or saved context.
--projecttextnoProject name to resolve.
-o, --outputyaml, jsonnoOutput format.

automations get

Get an automation by ID.

judgment automations get [OPTIONS] [[[ORG_ID] PROJECT_ID] RULE_ID...]

Arguments

NameRequired
[[ORG_ID] PROJECT_ID] RULE_IDno

Options

FlagTypeRequiredDescription
--organization-id, --org-idtextnoOrganization ID. Defaults to JUDGMENT_ORG_ID or saved context.
--organization, --orgtextnoOrganization name to resolve.
--project-idtextnoProject ID. Defaults to JUDGMENT_PROJECT_ID or saved context.
--projecttextnoProject name to resolve.
-o, --outputyaml, jsonnoOutput format.

automations list

List automations.

judgment automations list [OPTIONS] [[[ORG_ID] PROJECT_ID]...]

Arguments

NameRequired
[[ORG_ID] PROJECT_ID]no

Options

FlagTypeRequiredDescription
--organization-id, --org-idtextnoOrganization ID. Defaults to JUDGMENT_ORG_ID or saved context.
--organization, --orgtextnoOrganization name to resolve.
--project-idtextnoProject ID. Defaults to JUDGMENT_PROJECT_ID or saved context.
--projecttextnoProject name to resolve.
-o, --outputtable, yaml, jsonnoOutput format.

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] [[[ORG_ID] PROJECT_ID] RULE_ID...]

Arguments

NameRequired
[[ORG_ID] PROJECT_ID] RULE_IDno

Options

FlagTypeRequiredDescription
--organization-id, --org-idtextnoOrganization ID. Defaults to JUDGMENT_ORG_ID or saved context.
--organization, --orgtextnoOrganization name to resolve.
--project-idtextnoProject ID. Defaults to JUDGMENT_PROJECT_ID or saved context.
--projecttextnoProject name to resolve.
--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)
-o, --outputyaml, jsonnoOutput format.

--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>", ...]
  }?
}