Open Protocol · Decentralised · v0.1 · MIT License

Every URL is
a place.

You're never the only one on a webpage. You just can't see anyone else.

Loci changes that. One open protocol, many independent servers — when they federate, presence is global. No single company in the middle. Your community keeps its own conversation. The awareness belongs to everyone.

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>

The web is a crowded room
with the lights off.

Billions of people browse the same pages every day. They read the same articles, watch the same videos, search the same questions. But the web was built to serve pages, not to show you the people next to you.

That wasn't an accident. The platforms that grew up around the web — the feeds, the likes, the follower counts — they exist because the web never gave you the simplest piece of information: who else is here right now?

Social media sells you the answer to that question. Loci gives it away.

An open protocol. A single signal — presence — that anyone can build on. Self-host your own Loci server, or join the official network. When servers federate, their presence counts merge across every host on that URL. No platform owns the graph. Anyone can run a node. The web doesn't need another silo. It needs plumbing.


You show up. That's it.

No accounts. No invite links. No app to join. You visit a page, and if someone else is there, you can see them.

01

You browse.

Open any page — in the extension, the terminal, wherever. Loci resolves the URL to a single, universal room ID.

02

You arrive.

You get a name. Not a profile — a name. "Silent Crane." "Bright Moth." Anonymous by default, persistent if you want it.

03

You choose what's on.

Presence. Chat. Voice. Subscribe to what you want over a single connection. Leave the rest off. Nothing demands your attention.

04

You see everyone — across every server.

When independent Loci servers federate, their presence counts merge. One number. Every host on that URL. Your conversation stays local to the server you joined. The awareness is shared across the whole decentralised network. How federation works →


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, own your data, and optionally federate presence with other Loci networks.

wrangler deploy

Official network: loci.frnd.tech


Build your own client with the SDK.

Start with a live playground, then ship your own integration. Try the Slack bot recipe to map channels to webpages and bridge chat in both directions.

[?]

SDK Playground

Live route at /playground. Connect to the protocol, inspect messages, and generate starter client code.

[~]

DIY Slack Bot Cookbook

A complete walkthrough for a Slack bot that lets users map channels to webpages and join a Loci room directly from Slack.

[=]

SDK Reference

Use LocusClient callbacks and helpers to build bots, browser clients, and custom interfaces on one protocol connection.


One connection.
Use it however you want.

Loci does one thing: it knows who's here. Everything else — every conversation, every voice call, every game — plugs into that signal.

Presence

See who's on the same page, right now.

Real-time, ephemeral. When they leave, they're gone.

Chat

Talk to the people around you.

Per-page rooms with channels anyone can create. IRC for the whole web.

Voice

Just talk.

Peer-to-peer audio. No server in the middle. Up to 8 people, like a table at a bar.

What's next

Loci is a protocol, not a product. If it needs to know "who else is here," it can run on Loci. Collaborative tools. Ambient music. Idle games where every URL is a dungeon and every page is an encounter. The protocol doesn't care what you build on it.



Not a platform. A protocol.

MIT licensed. Self-hostable. No hidden services, no black-box infrastructure, no terms of service that change on you.

Loci is a protocol the same way email is a protocol: run your own server, or connect to an existing one. No single operator controls the network. When independent Loci servers federate, their presence merges — but every community keeps its own chat, voice, and moderation. Decentralised awareness. Local community. Read the federation docs →

Loci is a federated network.

Self-host your own Loci server and peer it with the official network — or with any other Loci deployment. Presence is shared globally. Everything else stays on your server, under your rules.

Read how federation works →