APP is the open standard underneath Chitin. It connects any AI agent to any presentation surface — avatar, voice, orb, or screen — with a single, simple message format. If your agent can send JSON, it can use APP.
One message renders legibly across an avatar, a voice, a watch glance, a car, or an ambient light. The agent doesn't need to know which.
Any agent that speaks the protocol connects. No privileged framework, model family, or vendor.
Memory, identity, and policy belong to the user. The relay routes; it doesn't capture.
Agents can reach you when something warrants it, not just answer when asked — declaring why they're reaching out and what your non-response means.
Apache 2.0, open reference implementations, a relay you can self-host.
Surfaces broadcast whether it's a good moment; agents respect it.
A surface announces itself and the capabilities it supports.
The agent sends a message — a response, or an initiated notification that declares its warrant and stakes.
The surface renders it — speaking, animating, or both — within its abilities.
User input flows back to the agent over the same channel. Repeat.
typeRoutes the message — chat_message, agent_notification, presence_update, agent_card, and more.
warrantuser_authorized, task_decision_required, or external_event. Required on agent-initiated contact.
if_unansweredblocks_until_answered, proceeds_with_default, safe_to_ignore, or reverts_at.
target_surfacewatch, phone, desktop, car — or auto to let the relay choose by presence and urgency.
agent_cardHow agents and surfaces declare who they are and what they support, so mismatches are negotiated, not crashed into.
presence_updateHow a surface signals whether the user is interruptible right now.
Chitin is the first app built on the Agent Presentation Protocol. The spec is open — bring your own agent.