The Ansible manifesto

Six things we promise, and one we cannot promise yet. Every claim here is checkable: the client code is open, the protocol is described, the schema is published.

1. Encryption is not an option

The connection to the server is always encrypted. Not "can be enabled in settings", not "for paid accounts" — always, from the first packet to the last. Client and server agree on a key over Diffie — Hellman, then it is AES IGE, and every message's integrity is checked against msg_key. We tried reading our own traffic from the outside: the payload does not come out.

What an observer does see: packet lengths and a key identifier. That is metadata, and we know about it.

2. Where we hold no key, we hold no key

In secret chats and one-to-one calls the devices derive the key and the server works as a blind relay: it passes bytes with no way to read them. That is not a promise not to look — it is the absence of the ability. You can check it in the client's source.

3. We say the thing nobody says

The server can read cloud chats. That is how any system works where a conversation is available on a new device without moving keys: to hand you your history on a freshly installed client, the server has to be able to read it. It is a deliberate trade of privacy for convenience, and the right response is to name it out loud rather than hide it behind the word "encryption".

If you need a conversation we cannot reach, that is a secret chat. It is on every one of our clients.

4. Open enough to be checked

The client source is open under the GPL, and the protocol and schema are published in full — every constructor and every method, not excerpts. Anyone can write their own client and get developer keys. The claim "your data is safe" is worth exactly as much as the ability to verify it.

5. We write down what we do not have

Ansible has a page listing what is done — and what is not. There are no group calls yet, no native macOS client, and some builds are debug builds. A product that lists its holes can be checked; one where everything "works great" cannot.

6. No dark patterns in the interface

We do not consider it acceptable to hide the log-out button, to opt anyone in by default, to show "read" when nothing was read, or to send data nobody asked us to send. If you find such a thing, it is a bug and it is worth reporting.

What we do not promise yet

Everything about money and jurisdiction is deliberately absent here: how the project will earn, whether there will be advertising, who owns it and under whose law it answers requests. Those are decisions for the owners rather than the developers, and until they are made and signed, promising them from a web page would be dishonest.

What can already be said: moderation covers the public part — channels, supergroups, bots — and not private conversations.