Skip to content
Select themeSelect language

Approve or reject agent actions

When an autonomous agent reaches a point it should not pass without a human, it pauses and asks for approval. SupaCloud surfaces that one pending decision as an interactive approval you can answer from any control surface — the web terminal, Telegram, or Discord. The agent stays blocked on exactly that decision until you respond (or its timeout policy resolves it for you).

There are three kinds of approval:

Kind What it is Example
Tool A dangerous tool call the agent wants to run A Bash command, a deploy, a migration
Question An open question the agent asks before continuing “Which environment should I target?”
Visual A before/after screenshot sign-off UI change captured for human review

In the web terminal at /cli, list every paused agent in the active workspace and decide one by its short id.

# List the interactive approvals waiting across the workspace
tool-approvals
# Approve or reject one by its (short) approval id; an optional note
# is passed back to the agent as your reason / answer
approve-tool <id> [note]
reject-tool <id> [note]

The id is resolved by prefix the same way task ids are: a unique prefix decides the gate; an ambiguous or unknown prefix is reported rather than guessed.

You can also list both interactive and workflow approvals together:

approvals # both sources, each under its own heading
approvals --filter=tool # only the interactive tool/question/visual gates
approvals --filter=workflow # only workflow human-gates

When a task you own pauses, SupaCloud posts an approval card to your linked chat — one message with the kind, the redacted detail, any before/after image previews, and inline Approve / Reject buttons. Tap a button to decide.

  • A paused task pushes the card automatically to the chat linked to the task owner. Tap Approve or Reject; the bot replies with a confirmation.

  • To review what is waiting at any time:

    /approvals # both human-gate and interactive approvals
    /approvals tool # only the interactive tool/question/visual gates
    /approvals workflow # only workflow human-gates

A visual approval is a sign-off on a UI change. The card carries:

  • The before/after screenshots as signed, time-limited image links (Telegram previews them, Discord embeds them; in the web terminal they print as URLs).
  • The machine judge verdict when one ran — PASS, FAIL, or not run — human review — followed by the reasons the judge gave, so you can see why the automated check thinks the change passes or fails before you decide.

If the screenshot links cannot be built (the capture-serve secret is unset) the card degrades to text-only: it still lists what was captured and the judge verdict, so you can always make a decision.

Every approval carries a timeout policy that decides what happens if no human responds:

Policy Behaviour Used for
Hold Blocks forever until a human decides — never auto-resolved Deploys, migrations, and any action forced to wait on a human
Deny Auto-denied after a deadline so the agent continues without the action Optional questions and lower-risk gates

The deny deadlines are per kind: a tool waits 5 minutes, a question 30 minutes, and a visual sign-off 1 hour. When a deny gate times out the agent is unblocked with a denial and continues; a hold gate simply waits.