Open Protocol · v0.1 · MIT License

Every URL is
a place.

Loci turns any URL into a shared room — instantly. If you're on the same page as someone else, you're in the same space. Chat, voice, and games are just layers on top.

loci — terminal
$ loci join https://en.wikipedia.org/wiki/Cat
Connected to https://en.wikipedia.org/wiki/cat
You are Silent Crane | Channel: #general
Commands: /who /channels /voice /join #channel /quit
 
-- 2 recent messages --
Quiet Wolf: anyone here?
 
#general Silent Crane> hey everyone 👋
Quiet Wolf: heyyy
Bold Ibis: welcome!
#general Silent Crane>

URL → room, in milliseconds.

No accounts. No invite links. No servers to manage. The URL is the room key.

01

Visit any URL

Open a page in your browser with the Loci extension installed, or point the CLI at any URL you like.

02

URL is canonicalized

Loci strips tracking params (utm_*, fbclid), normalizes casing, sorts query params — so two people on the same real page always map to the same room.

03

Room ID is derived

The canonical URL is SHA-256 hashed. That hash becomes a Durable Object ID — one per URL, zero cost when empty.

04

You get a name

Ephemeral by default: Adjective Noun generated per session. No sign-up required. Persistent ed25519 identity available for channel ownership.

05

Subscribe to layers

One WebSocket connection, multiple layers. Subscribe to presence, chat, or audio — or all three.


Pick your interface.

Official clients for every workflow. All open source, all pointing at the same protocol.

🧩

Chrome Extension

Ambient sidebar that appears on every tab. See who's co-browsing, open a chat, or jump into voice — without leaving the page.

Download latest build

Download the ZIP, extract it, then load the unpacked extension in chrome://extensions. Chrome Web Store listing coming soon.

⌨️

CLI — locus

IRC-style terminal client. Join any URL room, chat in real time, and subscribe to layers from the command line.

npm install -g @loci-protocol/cli
loci join https://example.com
📦

TypeScript SDK

Universal browser + Node library. Dual ESM/CJS. Embed Loci presence and chat anywhere — your app, a widget, a script.

npm install @loci-protocol/sdk
import { LocusClient } from '@loci-protocol/sdk'
🏗️

Self-host the server

Run your own Loci network on Cloudflare Workers in minutes. Point any client at your deployment and own your data.

wrangler deploy

Official network: loci.frnd.tech


One connection.
Three dimensions.

Subscribe to what you want. One WebSocket per client — layers are subscriptions, not separate connections.

Presence

Who's here

Real-time count and identity of everyone on the same canonical URL. Ephemeral — presence disappears the moment they leave.

Chat

Rooms & channels

Ring-buffered messages (last 100, 24h TTL). Create named channels. Optional persistent storage tier for communities that want history.

Audio

Voice · P2P mesh

WebRTC full mesh, up to 8 participants per channel. The server handles only signaling — audio stays peer-to-peer. No TURN in v0.1.



Built in the open.

MIT licensed. No hidden services, no black-box infra. Self-hosting is a first-class feature.