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 — a skill cannot understate what its proposal costs:
- read — no side effects outside Nexus. Never needs approval.
- write-safe — reversible workspace writes: today, completing an Asana task or adding a comment on one.
- send — outward-facing or hard to take back: today, 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, no tap, 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.