Chitin Presentation Protocol
An open protocol for connecting any AI agent, device, or machine to any presentation surface. If it can send JSON, it can use CPP.
What is CPP?
The Chitin Presentation Protocol defines how AI agents and devices describe themselves, negotiate capabilities, and stream rich content to presentation surfaces — phones, desktops, cars, kiosks, or anything with a screen and a speaker. Five design principles guide every decision:
Surface-Agnostic
Works identically whether the surface is a phone, a desktop, a display in your car, or an iPad bolted to a museum wall. Agents describe what they can do, not how to render it.
Capability-Driven
Surfaces and agents negotiate via declared capabilities. An agent that supports emotions triggers avatar animations where available and is gracefully ignored where not.
Relay-Transparent
Messages pass through relays without modification. The relay is a pipe, not a processor. E2E encryption stays intact. Headless devices can opt into relay intelligence.
Incrementally Adoptable
Start with plain text and a 50-line adapter. Add voice, avatars, emotions, streaming, and artifacts as your integration matures. No all-or-nothing migration.
Envelope Principle
Chitin defines the message structure — framing, routing, authentication. You define the vocabulary — what your agent says, what actions your device supports.
How It Works
Agent Card Exchange
When a surface connects, the agent sends its Agent Card — a compact JSON document describing its identity, capabilities, personality, and supported interaction modes. The surface reads this card and configures itself accordingly. A conversational AI agent's card looks different from a robotic vacuum's card, and the surface adapts to both.
Capability Negotiation
The surface replies with its own capability manifest: what it can render (text, voice, avatar, rich cards), what input it supports (voice, text, touch), and any constraints. Both sides agree on a shared feature set. An agent that supports 13 emotion tags will use all of them on a surface with avatar rendering, and gracefully fall back to text-only on a surface without.
Message Streaming
Once negotiated, messages flow as structured envelopes. Text streams token-by-token. Voice streams as audio chunks. Emotion tags trigger avatar animations. Sensor data arrives as typed events. Device commands dispatch as validated actions. Everything is real-time, everything is typed, and everything is backwards-compatible.
Three Interaction Models
CPP supports three ways for intelligence to connect to surfaces, depending on where the brains live.
Cloud Agent → Surface
A cloud-hosted AI agent connects to Chitin surfaces via the relay. The simplest model — your API endpoint speaks CPP, and any Chitin surface can render your agent with a face, a voice, and emotional expression.
A customer service agent renders as an animated avatar on a lobby kiosk. Visitors walk up and ask questions; the avatar responds with natural voice and expression.
A coding assistant streams responses to a developer's desktop. Emotion tags let the avatar look thoughtful while reasoning and satisfied when it finds a solution.
A tutoring agent appears on a student's tablet as a themed character — a scientist for chemistry, a historian for social studies — with personality and voice matched to the subject.
Smart Device → Surface
A device with its own intelligence connects as a bridge. The device sends telemetry, sensor data, and status updates. The surface provides the visual and voice interface. The AI runs on the device or a nearby machine — no cloud required.
Your local AI agent on your Mac serves your avatar on your iPhone, iPad, CarPlay, and Desktop — all simultaneously, sharing the same memory. This is how Chitin works today with OpenClaw.
An electric vehicle sends battery level, range, and cabin temperature. You say "set cabin to 72" and the surface dispatches a structured action to the car.
A home automation hub declares every light, thermostat, and lock. "Turn off the living room lights" routes through your avatar's voice interface to the hub, validated against its declared capabilities.
Headless Device → Relay Intelligence → Surface
A device with no screen, no AI, and no natural language understanding connects as a headless bridge. It declares what it can do in its Agent Card, and the relay's intelligence layer handles everything else. When you say "vacuum the kitchen," the relay translates your words into a structured command, validates it, and dispatches it. The adapter never has to understand English.
A robotic vacuum declares start_clean, dock, and set_schedule with room options. ~50 lines of Python. You control it by talking to your avatar.
A combine harvester reports grain yield, fuel level, and GPS position. The farmer asks "how much wheat have we harvested today?" from their phone while driving to town.
A CNC machine sends job progress, spindle RPM, and error codes. The operator checks status by voice from across the shop floor.
A satellite reports power budget, thermal readings, and experimental payload data. A ground operator asks "what's the current power budget?" through an avatar on their desktop. CPP is asynchronous by design.
Multi-Agent Routing
CPP supports multiple agents connected to a single user account. Each agent has its own Agent Card, its own online status, and its own bridge ID. Surfaces can enumerate all connected agents and address them individually.
Say you have an AI instance on your Mac, a robotic vacuum in your living room, and a home automation hub in your closet. All three are connected as bridges. Your avatar app shows all three as available agents. You say "turn on the porch light" and the surface routes it to the home automation hub. You say "vacuum the bedroom" and it routes to the vacuum. You say "summarize my emails" and it routes to the AI.
Routing is explicit when you target a specific agent, or automatic when you let the relay figure out which agent should handle the request based on capability matching.
Agent Cards
Every CPP agent identifies itself with an Agent Card — a compact JSON document that tells surfaces who it is and what it can do.
{
"cpp_version": "0.1",
"agent": {
"id": "my-assistant",
"name": "Atlas",
"description": "A helpful AI assistant",
"interaction_model": "cloud_agent"
},
"capabilities": {
"text": true,
"voice": {
"supported": true,
"format": "opus",
"streaming": true
},
"avatar": {
"supported": true,
"emotion_tags": [
"neutral", "happy", "thinking",
"surprised", "sad"
]
},
"memory": {
"supported": true,
"scope": "per-user"
}
},
"personality": {
"baseline": "Warm, curious, concise.",
"voice_style": "Conversational, natural.",
"response_length": "2-3 sentences"
}
}{
"cpp_version": "0.1",
"agent": {
"name": "Shop Vacuum",
"version": "1.0.0",
"description": "Robotic vacuum adapter",
"interaction_model": "headless"
},
"device": {
"type": "vacuum",
"status": {
"battery": 85,
"state": "docked",
"bin_full": false
}
},
"available_actions": [
{
"id": "start_clean",
"description": "Start cleaning",
"params": [{
"name": "room",
"type": "option",
"options": [
"living_room",
"kitchen",
"bedroom"
]
}]
},
{
"id": "dock",
"description": "Return to dock"
},
{
"id": "set_schedule",
"description": "Set daily schedule",
"params": [{
"name": "time",
"type": "string",
"description": "HH:MM format",
"required": true
}]
}
]
}The surface reads these cards and adapts. An AI assistant card configures the avatar with emotions, voice, and memory. A vacuum card builds a command interface validated against declared actions. Same protocol, radically different devices.
Where CPP Goes
The protocol is designed for any surface where intelligence needs to be presented — from consumer devices to commercial deployments to orbital hardware.
Commercial & Enterprise
Smart Vending
An avatar-equipped vending machine greets customers, answers questions, makes recommendations, and processes the transaction. The entire loop closes without a human.
Museum Guides
An iPad next to an exhibit answers any question about what the visitor is looking at. Themed personality, multilingual, no staffing headaches.
Real Estate Showings
An iPad inside a property answers questions about square footage, schools, and HOA fees while the agent is away. Setup takes minutes.
Hotel Concierge
An iPad in each guest room answers WiFi, pool hours, and towel requests in any language. Service requests route to staff via webhook.
Trade Show Booths
An avatar on an iPad handles product questions while your sales team is occupied. Upload your catalog, pick an avatar, the booth runs itself.
Industrial & Agriculture
Precision Agriculture
Irrigation controllers, soil sensors, weather stations, and harvesters — all connected as headless devices. A farmer manages an entire operation by voice from their truck.
Shop Floor Monitoring
CNC machines, 3D printers, laser cutters — operators check job progress, material levels, and error codes by voice from across the floor.
Space & Remote Operations
Orbital Telemetry
A satellite reports power budget, thermal status, and experimental payload data. Ground operators interact through an avatar on their desktop. CPP is asynchronous by design.
Remote Sensor Networks
Deep ocean buoys, volcanic observatories, arctic weather stations. Periodic uplinks push data through the relay. Researchers check conditions by talking to their phone.
Security
CPP uses end-to-end encryption for all messages between agents and surfaces. The relay never sees plaintext content — it routes encrypted envelopes by reading only the message type header.
Key Exchange
ECDH P-256
Message Encryption
AES-256-GCM
Authentication
Ed25519
CPP is Apache 2.0 licensed. A basic integration takes about 50 lines of code. The spec is 1,189 lines covering transport, message types, Agent Cards, capability negotiation, authentication, encryption, and versioning.
If your agent already speaks HTTP or WebSocket, you're most of the way there.
Need a branded AI presence for your business? The Commercial SDK includes custom avatar creation, white-label surface apps, dedicated relay capacity, and priority support.
Deploy AI-powered kiosks, customer service avatars, smart vending interfaces, or industrial monitoring dashboards — all powered by CPP.
Contact SalesGive your agent a face.
CPP is open, free, and ready to use. Start with the reference implementation, or download a Chitin app to see the protocol in action.