Skip to content

OriginChats documentation

A chat protocol built on JSON over WebSocket. Build a client in any language, or run your own server.

An OriginChats server is one process that serves a WebSocket and a small HTTP API on the same port. Clients open the WebSocket, receive a handshake frame, authenticate, and then exchange JSON frames. Every frame has a cmd field that names it. HTTP handles the things that don’t fit in a frame: file uploads, downloads, avatars, and inbound webhooks.

Build a client

Connect, authenticate, and send your first message, then add reconnection, uploads, and notifications.

Start the client quickstart

Learn the concepts

Channels, messages, threads, roles, access control, and moderation, explained as systems instead of commands.

Read about channels

These docs describe originchats-osl, the current server, written in OSL. Its source is at git.rotur.dev/originchats/server-osl.

The older Python originchats server is legacy. If you are migrating an integration from it, see legacy compatibility for the commands that changed.