LoopLoop

Signals

Submit manual signals from the command line using the loop CLI.

Signals

The signals ingest command submits a manual signal to Loop. A signal represents raw data from an external source (error, metric, user feedback). When submitted, Loop creates both a Signal record and a linked triage Issue automatically.

loop signals ingest

loop signals ingest <message> [options]

Arguments

ArgumentDescription
messageSignal message text (required)

Options

FlagDefaultDescription
--source <s>manualSignal source identifier
--severity <sev>mediumSeverity level: critical, high, medium, low
--project <id>noneProject ID to associate with

Examples

Submit a basic signal:

loop signals ingest "Checkout error rate spike: 5.2% to 12.1%"

Submit a high-severity signal:

loop signals ingest "Database connection pool exhausted" --severity high

Submit with a custom source and project:

loop signals ingest "Memory usage exceeding 90% threshold" \
  --source monitoring \
  --severity critical \
  --project clx1abc2def3ghi4jkl5mnop

Use in a CI pipeline with environment variables:

LOOP_API_URL=https://api.looped.me \
LOOP_API_TOKEN=loop_... \
loop signals ingest --severity high "Deploy failed: exit code 1"

Output as JSON:

loop signals ingest "Test failure in auth module" --json

Sample output

Signal created: clx7sig1nal2abc3def4ghij
Linked issue: #46 Checkout error rate spike: 5.2% to 12.1%

JSON output

When using --json, the full response is printed:

{
  "signal": {
    "id": "clx7sig1nal2abc3def4ghij",
    "source": "manual",
    "type": "manual-signal",
    "severity": "medium",
    "payload": {
      "message": "Checkout error rate spike: 5.2% to 12.1%"
    },
    "issueId": "clx8iss2uea3bcd4efg5hijk",
    "createdAt": "2026-02-20T10:30:00.000Z"
  },
  "issue": {
    "id": "clx8iss2uea3bcd4efg5hijk",
    "number": 46,
    "title": "Checkout error rate spike: 5.2% to 12.1%",
    "type": "signal",
    "status": "triage",
    "priority": 3
  }
}

How signals work

When you submit a signal, the API:

  1. Creates a Signal record with the source, severity, and payload
  2. Creates a linked Issue with type: signal and status: triage
  3. Returns both the signal and the issue

The new issue appears in the triage queue, where it can be reviewed with loop triage.