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.