swan

Approve once.
Send exactly that.

Swan checks again the moment before an AI sends anything. If something changed after your yes, nothing goes.

This runs Swan's real Python guard on our server against a private test receiver.

swan 1 request
The photo your assistant wants to send: a paper-cut mountain lake at sunriseField photo

Send this photo to Alice

ToAlice, Inspection team
PhotoThis exact photo
GlassesConnected
AgeJust taken, limit 5 s
Your yesWorks once

Your assistant wants to send a photo.

Open it to see exactly what it would send.

Then, before it sends:

Rechecking

Comparing what is about to go with what you approved.

Five ways a yes goes wrong

Each one below runs the real guard, not a mock-up. Pick one and watch the phone.

And when nothing changed, it just sends.

One call between approval and send.

Your app shows the request and records the yes. Swan makes the send, and refuses anything the yes does not cover.

Python
# Your app shows the exact request.
proposal = guard.propose(frame, payload, alice)
approval = guard.approve(proposal)

# Swan checks again before anything leaves.
result = guard.dispatch(
    approval, proposal, payload, alice
)

# blocked | accepted | delivery_unknown
result["status"]

A changed picture, recipient, or camera session stops the send.