Approvals

How propose-then-approve works. Nothing touches your accounts until you say so.

Nexus's agents can propose actions; only you can make them happen. This is the core safety contract: models and agents describe a side effect, and a server-side execution service (the only code path that can write to your connected accounts) performs it after your approval. Even a fully misbehaving model can at most put a card in your inbox.

Risk levels

Every proposable action has a risk level, assigned by Nexus's action catalog in code, so a skill cannot understate what its proposal costs:

  • read: no side effects outside Nexus. Never needs approval.
  • write-safe: reversible workspace writes. Today, that means completing an Asana task or adding a comment on one.
  • send: outward-facing or hard to take back. Today, that means sending a Slack message. Send actions are never auto-approved, no matter what you configure.

A skill's manifest caps the risk it may propose at all; an over-privileged proposal is rejected at the source before it ever reaches you.

The inbox

Pending proposals live on the Dashboard under Needs your approval (also at /approvals); the Dashboard tab badge counts them. Each card shows:

  • who proposed it (the skill and run it came from),
  • exactly what will happen (the preview is rendered from the same payload that executes, so a message shows precisely as it will send),
  • Approve and Reject.

Approve executes immediately and reports the result on the card. Two lenses: Waiting (pending) and History (decided, with outcomes).

Approve all reversible

One tap approves everything currently pending at write-safe risk or below. Send-risk proposals are never included in the batch; those you decide one by one.

Always allow: graduating an action

When you find yourself approving the same reversible action repeatedly ("complete an Asana task," again), tap Always allow on its card. That action type then auto-executes on future proposals, decided by policy with no tap and still fully audited.

  • Only write-safe actions can be graduated. Attempting to auto-allow a send action is refused, and it's re-checked at execution time as well.
  • Your auto-allow list shows as chips in the inbox; revoke any of them with one tap.

The audit trail

Every proposal transition (proposed, approved, auto-approved, rejected, executed, failed) is written to an append-only, per-space audit log with the actor attached (you, policy:auto, or skill:<name>). There is no API to edit or delete audit entries.

Notifications

Turn on push notifications to get "Approval needed" the moment a proposal lands; tapping it opens the inbox. A word of caution that we design around but can't remove: don't let approvals become reflexive. The preview on the card is your moment of control; read it, especially for sends.