Apron Chat Protocol

2 min read Original article ↗

Apron logo: a smiling orange apron

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.

Team chat. Rooms, threads, DMs, bots, replies, mentions, a terminal, reactions and presence.
Family chat. Private rooms, threads, replies, reactions, avatars and typing.
Support desk. A swarm of bots, a thread per ticket, one answer for all of them.

3.Servers

Reference implementations to run or modify for your use cases.

4.Clients

Join any server with your favourite client, or build your own.

5.FAQ