Welcome to Sytext. Whether you're connecting your first account or mastering AI tags, this guide covers everything you need to know to make your inbox calm.
1. Getting Started
The first screen offers Continue with Google, email and password, or the demo without an account.
Recovery Keys
Recovery keys stand in for a reset email, which Sytext doesn't send. Creating an account shows a key once, like 7K2QP-M9XHD-4T8RW-CZ6NB-J3VFA (125 random bits), to copy or download. If the password is forgotten, Forgot password? on the sign-in screen takes the email, the key and a new password. The key then stops working and a new one is shown, and the account's other sessions end. Only a SHA-256 hash of the key is stored.
Google Sign-in
The ID token from Google's button is verified on the server (signature, issuer, audience, expiry, verified email). Signing in with Google to an existing account with the same email links the two, and turns that account's password off and ends its sessions, since email addresses aren't verified on sign-up and whoever set the password may not own the address.
2. Connecting WhatsApp
Enter your number and Sytext shows an 8-character code. On your phone, open WhatsApp → Settings → Linked devices → Link a device → Link with phone number instead, and type it in. Or choose QR code and scan it from the same screen. Sytext becomes one of your linked devices, like WhatsApp Web; your phone doesn't have to stay online.
- It brings in your recent chats (up to 40 messages each) and every new message after that, with delivery and read ticks for yours, edits and deletions.
- Photos and files both ways: photos show in the chat, videos and documents as cards, and each one downloads. Stickers show as stickers, animated ones too, and voice messages play in the chat.
- Quoted replies and reactions come in and go out, also those on messages from history. You see when someone is typing, and they see when you are. Profile and group pictures show too.
- Scrolling back past what's stored asks your phone for older messages, as WhatsApp Web does. They arrive a moment later, if the phone is online.
- Reading a chat in Sytext marks it read on WhatsApp; replies go out from your number.
- Unlink logs the device out (it disappears from Linked devices) and deletes its chats from the server. If you remove the device from your phone instead, syncing stops and Settings offers to link again or remove its chats.
3. Connecting Telegram
Enter your number; Telegram sends a login code to your Telegram app (or by SMS). Enter it, and your two-step verification password if you have one. Or choose QR code and scan it in Telegram on your phone (Settings → Devices → Link Desktop Device). Sytext signs in as you, like Telegram on a new device, and shows up in Telegram under Settings → Devices, where you can end it.
- Your 30 most recent chats come in (20 messages each; broadcast channels are left out), then everything new, with read status both ways, edits, and photos, files, stickers and voice messages as above.
- Quoted replies, reactions (Telegram's standard set), typing both ways, and profile and group pictures. Scrolling back fetches earlier messages from Telegram.
- Unlink ends the session in Telegram and deletes its chats from the server.
4. Instagram DMs
Instagram is linked in Settings → Accounts with its username and password; it usually asks for a code as well (from your authentication app, or by text or email), and the card asks for that next.
Read this before you use it. Meta has no API for a person's own DMs — its Messaging API only covers messages sent to a business account — so Sytext signs in the way instagram.com does and reads the endpoints its Direct page reads. Meta's terms don't allow that. A sign-in from a server is often challenged ("was this you?"), and can get an account locked or asked for a password change. Use it knowing that; INSTAGRAM=off takes it off the page entirely.
Your password is never stored. It's used once, to sign in; only the session Instagram hands back is kept, encrypted (DATA_ENCRYPTION_KEY), so the link survives restarts without it. When Instagram throws that session out, the account goes quiet and Settings says to link again — there is nothing stored that could sign in by itself.
- Chats: Your DMs, one-to-one and group, as Instagram's own inbox lists them.
- Messages: Text out; text and photos in. Photos come through this server (
/api/files/…); Instagram's own links to them expire. - Live: No stream: the inbox is looked at every 45 seconds, so a message takes up to that long to appear. Replies go out at once.
- Read receipts: Opening a chat tells Instagram — unless Incognito mode is on.
- Not there: Replies, reactions, edits, unsending, "typing…", older history and sending photos. Starring, pinning, deleting for me and archiving are kept by Sytext itself.
Security checks. Instagram often wants a sign-in from a server checked before it allows it. That check is not a prompt in the app — nothing arrives on your phone — so Sytext answers it the way the website does: a "was this you?" review is answered on the spot (it's this sign-in being asked about), and when Instagram wants a code instead it sends one to your email or phone and the card asks for it. If it insists on a check that only works in a browser, Settings says so: sign in on instagram.com, clear it there, then link again.
5. Matrix & Bridges
Sign in to any Matrix homeserver with a password, or paste an access token from another Matrix app (needed for servers that only allow single sign-on). Every joined room becomes a chat.
Rooms created by mautrix bridges announce what they bridge (an m.bridge state event), so a WhatsApp chat appears under WhatsApp, shows the contact's phone number, and replies go out on WhatsApp. This covers mautrix-whatsapp, -meta (Instagram), -slack, -gmessages (SMS/RCS) and -telegram. Run the bridges on your own homeserver; most bridges require that, and it keeps your chats on infrastructure you control.
- The homeserver must allow requests from the site (CORS). Synapse does by default.
- End-to-end encryption isn't supported yet. Messages in encrypted rooms show as locked, and replying there is refused with an explanation. Bridges can be configured to keep portal rooms unencrypted (the encryption section of their config).
- Disconnecting signs out the session Sytext created. A pasted access token belongs to another app, so that session is left alone.
6. Incognito Mode
Settings → Privacy → Incognito mode, as in Beeper. While it's on, an Incognito badge shows at the top:
- No read receipts. Opening a chat clears its unread count in Sytext, but WhatsApp's blue ticks and Telegram's "seen" don't go out (Matrix gets a private read receipt). It stays read in Sytext even though WhatsApp and Telegram still count it unread. To let one chat know, choose Mark as read for them in its ⋯ menu (it says so if that can't go out right now).
- No "typing…" while you write.
- Signed in, it's a setting of your account: every device follows it at once, and the server itself won't send read receipts or typing for you, whatever an older copy of the app asks. Without an account it applies on that device.
- Replying still shows you were there, of course, and opening the chat on your phone may send read receipts from the phone.
8. AI Features
Choose the AI in Settings → AI:
- Built-in demo AI (the default): simple rules on the device; no chat leaves it.
- Shared AI · free, for anyone signed in. The server answers with its own key. Nobody needs a key, and the key never reaches a browser.
- Your own API key: Claude, Gemini, ChatGPT (OpenAI), OpenRouter, Groq, Mistral, DeepSeek, Grok (xAI), or any OpenAI-compatible service by its address. The key is checked with the provider, stored only in this browser, and sent only to that provider.
Privacy
AI is off until you allow it, and then only for the chats you select (Settings → AI, or a single chat from its AI panel). New chats stay unselected until you allow them. The gate lives inside the AI module, not just the UI, so an unselected chat can't reach a model even by accident.