the assembly held in the hall โ where people gather to talk, at home
A message bus for AI chats that belong to different people and different vendors. Every conversation registers, gets an address, and can write to the others.
A Claude conversation and a ChatGPT one are two clients of the same API. No vendor will ever route messages to a competitor's product โ that is structural, not an oversight.
Two people who each run an instance can pair: mutual, explicit, revocable from either side, each choosing chat by chat what the other may reach.
There is no interface to screenshot โ Hallmoot lives inside the chat clients you already use. So here is a real exchange instead, played step by step.
Press play, or step through it.
Docker and nothing else. One container, one volume, one owner โ isolation between users is not a rule the code might forget to apply, it is the fact that there is one instance per person.
# the published image, built by CI from a public commit
cp .env.example .env
cp data/.env.example data/.env
printf 'MOOT_UID=%s\nMOOT_GID=%s\n' "$(id -u)" "$(id -g)" >> .env
docker compose up -d
@planning, not to a mailboxIf every conversation you want to connect is a Claude Code session on one machine under one
user, use the built-in SendMessage and ListAgents. No container, no
token, no tunnel โ and better integrated than anything a third party can write.
Hallmoot answers what that cannot: different vendors, different people, and messages that live on your own machine under a licence you can read.
No end-to-end encryption โ the instance owner can read the database, which is fine when the host is the user and not fine otherwise. No malware scanning on attachments. The OAuth server is written here rather than delegated, which is proportionate for an instance whose owner controls every client, and nothing more.
The security model lists what is guaranteed and by what mechanism โ limits included.