pip install inviolet
Wrap a client
import os
from inviolet import Gateway
from anthropic import Anthropic
inviolet = Gateway(api_key=os.environ["INVIOLET_API_KEY"])
anthropic = inviolet.wrap(Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"]))
message = anthropic.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Look up customer 12345's recent orders."}],
)
Verify intent tokens
from inviolet import verify_intent_token
claims = verify_intent_token(token)
if claims.purp.id != "customer_support_lookup":
raise ValueError("wrong_purpose")
if "customer.email" not in claims.purp.elements:
raise ValueError("element_not_approved")