stackbone triggers

stackbone triggers targets a running agent installation. With no --agent it runs against the local-dev installation linked to the current project, so stackbone dev must be running. See target resolution. Every verb accepts --json and emits the standard envelope.

Read the trigger links of the targeted installation. A trigger link connects a connector trigger to a workflow: each event the trigger delivers starts a run of that workflow. You create and edit links on the Triggers screen in Studio. This command only reads them.

Command Purpose
stackbone triggers list List every link, and show a warning under each link that may start itself.

stackbone triggers list

List every trigger link: its id, whether it is on or off, the connector and trigger it reads, and the workflow it starts.

Flag Type Description
--agent string Installation id to target. Defaults to the local-dev install.
3f2a9c1e-5b7d-4e8a-9c0f-1a2b3c4d5e6f  on   gmail · new-email → reply-to-email
  warning: This link may start itself: a run it started wrote back through "gmail" (send_email) without asking isOwnEcho, so if the trigger delivers that write, the workflow runs again. Open the step with `if (await isOwnEcho('gmail', <the value the event carries>)) return;`.
8d4f0b6a-1e33-4a71-9c2e-9b1c7f423f6a  off  linear · updated_issue → triage

The echo-loop warning

A workflow that answers a trigger by writing back through the same connection can cause the event that trigger reads. The workflow then starts itself again. isOwnEcho stops that loop.

The warning: line shows when a run that the link started did all of these things in the last hour:

  • It called an operation on the link's own connector, and the call named an echoPath.
  • It did not call isOwnEcho for that connector.

The warning names the connector and the operation of the most recent such write. A link shows one warning, however many runs made such a write. A link that is off shows none.

The warning says the link may start itself. The box sees the shape of a loop, not the object the write changed: a file written to a folder the trigger does not watch makes no loop, and still gets the warning. A call that names no echoPath counts as a read and raises nothing.

To clear the warning, call isOwnEcho for that connector before the write. A run that called it is not counted, whatever the guard answered. The warning goes away when no run in the last hour wrote without the guard.

The same warning shows as a banner on the trigger's page in Studio.

JSON payload

{
  "schema_version": 1,
  "items": [
    {
      "id": "3f2a9c1e-5b7d-4e8a-9c0f-1a2b3c4d5e6f",
      "connector": "gmail",
      "trigger": "new-email",
      "workflowName": "reply-to-email",
      "enabled": true,
      "activity": {
        "firedCount": 12,
        // ...the rest of the link's activity
        "echoLoop": {
          "connector": "gmail",
          "operation": "send_email",
          "runId": "4c8d2e17-9a0b-4f3c-8e6d-7b5a1c2d3e4f",
          "at": "2026-06-01T10:05:00Z",
        } /* or null */,
      },
    },
  ],
}

echoLoop.runId is the run that made the most recent unguarded write. Open it with stackbone runs get.

BUILT WITH ❤️ FROM CANADA AND SPAIN