I built Passport, a free iOS/macOS app that lets a human issue signed, scoped, time-bounded credentials to AI agents — and revoke them instantly.

The problem: when an agent acts on your behalf (books, buys, emails), the receiving service can't tell whether a human authorized that specific agent to do that specific thing. Today it's raw API keys (no scoping, no audit trail, no kill switch) or nothing.

A Passport credential is a standard ES256 JWT that asserts:

which agent this is (human-readable name)

what it may do (scopes like browse, purchase:general)