Docs
Approvals
Docs/Approvals

Approvals

When Belay holds an action, your agent stops and waits for you to decide. You resolve it from your terminal, or from your phone if you have connected a notification channel.

See what is waiting

List all actions currently held for your approval:

bash
$ belay pending

belay pending is read-only. It shows you what is waiting and gives you the information you need to make a decision: what the action is, what it targets, and why it was held.

Approve or reject

When there is one action pending, approve it:

bash
$ belay approve

Belay presents the action and asks you to confirm. You can approve it, reject it permanently, or keep it blocked (press Enter to keep it blocked without making a final decision).

When more than one action is pending, belay approve requires you to specify which one using the --id flag shown in belay pending output. This prevents accidentally approving the wrong action.

bash
$ belay approve --id <approval-id>

How approval is authorized

Approval uses a key stored in your operating system's keychain, separate from your agent process. This means an AI agent running on your machine cannot mint its own approval: reading the keychain requires different OS-level permissions than running shell commands.

This is what makes the guarantee real: the agent can request an action, but cannot authorize it.

Out-of-band approval

You can also approve actions from your phone or any device with access to a connected notification channel. When a notification channel is configured, Belay sends you a message when an action is held. You reply to approve or deny it.

Belay supports Telegram and Slack as out-of-band channels. See Telegram or Slack to get started.

Approval window

Held actions do not wait indefinitely. If you do not respond within the approval window, the action is automatically denied. It never auto-approves on timeout.