Apron Chat Protocol
Apron is a minimal protocol for self-hosted chats. Simple enough to write a server in ~100 lines, powerful enough for rooms, threads, bots, reactions, and more.
For agents: apron.chat/llms.txt links the spec in Markdown, the servers, clients, JSON Schema and wire fixtures to test against.
1.The Protocol
JSON over any transport, like WebSocket. Tiny core and optional incremental capabilities with graceful fallbacks. Build only what you need.
{"method": "server", "params": {"apron": 10, "auth": ["guest"]}} {"method": "auth", "id": "c1", "params": {"scheme": "guest", "name": "Ada"}} {"id": "c1", "result": {"you": {"user_id": "guest_1234", "name": "Ada"}}} {"method": "message", "id": "c2", "params": {"body": {"text": "Hello"}}} {"method": "message", "params": {"room_id": "general", "from": {"user_id": "guest_1234"}, ...}} {"id": "c2", "result": {"message_id": "1724803200042"}}
2.Live Demo
Come say "hi" on our public demo server, or point the Apron Web client at your own server.
3.Servers
Reference implementations to run or modify for your use cases.
Goapron-server-goReference server for self-hosting. Every capability.
TypeScript · Workerapron-server-cloudflareRuns the public demo on the Cloudflare free tier.
Python · 1 filepython-minimalOne room, guests, history. uv run apron_server.py
Bun · 1 filejs-minimalThe same, no…