Messages only the people in the chat can read
gim encrypts every message and file on your device before it leaves. The servers that deliver them cannot read them, and your account is a key you hold, not a phone number.
9f3a…c07e41b2ciphertextHow gim works
A few ideas, each of them in the code.
Encrypted end to end
Chats use MLS (RFC 9420). Messages, images and files are encrypted on the sender's device and decrypted only by the members of the chat.
Your account is a key
Creating an account makes a root key on your device, and your account ID is derived from it. No phone number or email is asked for.
Recovery kit
Your account ID and recovery key, saved together once. If you lose every device, the kit brings your account back on a new one.
Hubs deliver, not read
Hubs are the servers that pass messages between devices. They carry ciphertext and never see what you write.
More than one hub
An account can be on several hubs at once. While one is down, messages keep arriving through the others. Hubs that federate let their users talk to each other.
Linked devices
Add a phone or a computer by scanning a QR code and checking that both screens show the same six-digit code.
Built-in servers, yours to change
The apps start with these two. Both can be changed in the app, and the keep server can be turned off.
hub.g.imDelivers messages and files between devices, encrypted end to end.
keep.g.imStores only an encrypted backup of your privacy settings, including who you blocked, sealed with a key from your root key, and the reports you choose to send. A report carries the messages you pick in plain text, so moderators can read them.
Run your own
The server source code is public on GitHub.